logo

Poista hakemisto tai tiedosto Pythonilla

Tässä artikkelissa käsitellään tiedostojen ja hakemistojen poistamista (poistamista) Pythonissa. Python tarjoaa erilaisia ​​menetelmiä ja toimintoja tiedostojen ja hakemistojen poistamiseen. Tiedoston voi poistaa tarpeen mukaan.

Pythonin tarjoamat erilaiset menetelmät ovat -

Tiedoston/hakemiston poistaminen os.remove()-menetelmällä

OS-moduuli Pythonissa tarjoaa toimintoja vuorovaikutukseen käyttöjärjestelmän kanssa. Kaikki os-moduulin toiminnot korotetaan OSE-virhe virheellisten tai tavoittamattomien tiedostonimien ja polkujen tai muiden argumenttien tapauksessa, joilla on oikea tyyppi, mutta joita käyttöjärjestelmä ei hyväksy.



os.remove()-menetelmä Pythonissa käytetään tiedostopolun poistamiseen tai poistamiseen. Tämä menetelmä ei voi poistaa tai poistaa hakemistoa . Jos määritetty polku on hakemisto, menetelmä nostaa OSErrorin.

Kohteen os.remove() syntaksi

Syntaksi: os.remove(polku, *, dir_fd = Ei mitään)

Parametri: polku: Polkumainen objekti, joka edustaa tiedostopolkua. Polun kaltainen objekti on joko merkkijono tai tavuinen objekti, joka edustaa polkua.

    dir_fd (valinnainen): hakemistoon viittaava tiedostokuvaaja. Tämän parametrin oletusarvo on Ei mitään. Jos määritetty polku on absoluuttinen, dir_fd ohitetaan.

Huomautus: Parametriluettelon '*' osoittaa, että kaikki seuraavat parametrit (tässä tapauksessamme 'dir_fd') ovat vain avainsanaparametreja ja ne voidaan antaa käyttämällä niiden nimeä, ei sijaintiparametreina.

Palautustyyppi: Tämä menetelmä ei palauta mitään arvoa.

Esimerkki 1: Tiedoston poistaminen Pythonissa

Oletetaan, että kansion sisältämä tiedosto on:

Haluamme poistaa tiedoston1 yllä olevasta kansiosta. Alla toteutus.

Python 3




# Python program to explain os.remove() method> # importing os module> import> os> # File name> file> => 'file1.txt'> # File location> location>=> 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/'> # Path> path>=> os.path.join(location,>file>)> # Remove the file> # 'file.txt'> os.remove(path)>

>

>

Lähtö:

Esimerkki 2: Poista tiedosto absoluuttisella polulla

Jos määritetty polku on hakemisto.

Python 3




# Python program to explain os.remove() method> # importing os module> import> os> # Directory name> dir> => 'Nikhil'> # Path> location>=> 'D:/Pycharm projects/techcodeview.com/Authors/'> path>=> os.path.join(location,>dir>)> # Remove the specified> # file path> os.remove(path)> print>(>'% s has been removed successfully'> %> dir>)> # if the specified path> # is a directory then> # 'IsADirectoryError' error> # will raised> # Similarly if the specified> # file path does not exists or> # is invalid then corresponding> # OSError will be raised>

>

>

Lähtö:

Traceback (most recent call last): File 'osremove.py', line 11, in os.remove(path) IsADirectoryError: [Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil'>

Esimerkki 3: Tarkista ennen poistamista, onko tiedosto olemassa

Käsittelyvirhe käytettäessä os.remove()-menetelmää.

Python 3




# Python program to explain os.remove() method> # importing os module> import> os> # path> path>=> 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil'> # Remove the specified> # file path> try>:> >os.remove(path)> >print>(>'% s removed successfully'> %> path)> except> OSError as error:> >print>(error)> >print>(>'File path can not be removed'>)>

>

>

Lähtö:

[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed>

Huomautus: Saat lisätietoja os.remove() -tiedostosta napsauttamalla tätä .

Tiedoston/hakemiston poistaminen os.rmdir()-menetelmällä

Pythonin os.rmdir()-menetelmää käytetään poistamaan tai poistamaan tyhjä hakemisto. OSE-virhe nostetaan, jos määritetty polku ei ole tyhjä hakemisto.

Kohteen os.rmdir() syntaksi

Syntaksi: os.rmdir(polku, *, dir_fd = Ei mitään)

Parametri:

    polku: Polun kaltainen objekti, joka edustaa tiedostopolkua. Polun kaltainen objekti on joko merkkijono tai tavuinen objekti, joka edustaa polkua. dir_fd (valinnainen): hakemistoon viittaava tiedostokuvaaja. Tämän parametrin oletusarvo on Ei mitään. Jos määritetty polku on absoluuttinen, dir_fd ohitetaan.

Huomautus: Parametriluettelon '*' osoittaa, että kaikki seuraavat parametrit (tässä tapauksessamme 'dir_fd') ovat vain avainsanaparametreja ja ne voidaan antaa käyttämällä niiden nimeä, ei sijaintiparametreina.

Palautustyyppi: Tämä menetelmä ei palauta mitään arvoa.

Esimerkki 1: Poista kaikki hakemistot hakemistosta

Oletetaan, että hakemistot ovat -

Haluamme poistaa Geeks-hakemiston. Alla toteutus.

Python 3




# importing os module> import> os> # Directory name> directory>=> 'Geeks'> # Parent Directory> parent>=> 'D:/Pycharm projects/'> # Path> path>=> os.path.join(parent, directory)> # Remove the Directory> # 'Geeks'> os.rmdir(path)>

>

>

Lähtö:

Esimerkki 2: Virheiden käsittely hakemistoa poistettaessa

Virheiden käsittely os.rmdir()-menetelmää käytettäessä,

Python 3




# Python program to explain os.rmdir() method> # importing os module> import> os> # Directory name> directory>=> 'techcodeview.com'> # Parent Directory> parent>=> 'D:/Pycharm projects/'> # Path> path>=> os.path.join(parent, directory)> # Remove the Directory> # 'techcodeview.com'> try>:> >os.rmdir(path)> >print>(>'Directory '% s' has been removed successfully'> %> directory)> except> OSError as error:> >print>(error)> >print>(>'Directory '% s' can not be removed'> %> directory)> # if the specified path> # is not an empty directory> # then permission error will> # be raised> # similarly if specified path> # is invalid or is not a> # directory then corresponding> # OSError will be raised>

>

>

Lähtö:

[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed>

Huomautus: Saat lisätietoja os.rmdir() -tiedostosta napsauttamalla tätä.

Tiedoston/hakemiston poistaminen käyttämällä shutil.rmtree()

shutil.rmtree():tä käytetään poistamaan koko hakemistopuu, polun on osoitettava hakemistoon (mutta ei symbolista linkkiä hakemistoon).

Kohteen shutil.rmtree() syntaksi

Syntaksi: shutil.rmtree(polku, ignore_errors=Epätosi, onror=Ei mitään)

Parametrit:

    polku: Polun kaltainen objekti, joka edustaa tiedostopolkua. Polun kaltainen objekti on joko merkkijono tai tavuinen objekti, joka edustaa polkua. ignore_errors: Jos ignore_errors on tosi, epäonnistuneista poistoista johtuvat virheet ohitetaan. onror: Jos ignore_errors on epätosi tai jätetään pois, tällaiset virheet käsitellään kutsumalla onror-määritteen määrittämä käsittelijä.

Poista hakemisto ja sen sisältämät tiedostot.

Esimerkki 1:

Oletetaan, että hakemisto ja alihakemistot ovat seuraavat.

# Päähakemisto:

# Hakemisto päähakemiston sisällä:

# Tiedosto alihakemistossa:

Esimerkki: Poista kaikki tiedostot hakemistosta

Haluamme poistaa hakemiston Tekijät. Alla toteutus.

Python 3


nimeä Linuxin hakemisto uudelleen



# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # location> location>=> 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path>=> os.path.join(location,>dir>)> # removing directory> shutil.rmtree(path)>

>

>

Lähtö:

Esimerkki 2: Ohita virhe poistettaessa hakemistoa

Ohitamalla ignore_errors = True.

Python 3




# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # location> location>=> 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path>=> os.path.join(location,>dir>)> # removing directory> shutil.rmtree(path, ignore_errors>=>False>)> # making ignore_errors = True will not raise> # a FileNotFoundError>

>

>

Lähtö:

Traceback (viimeisin puhelu viimeisin): tiedosto D:/Pycharm projects/gfg/gfg.py, rivi 16, shutil.rmtree(polku, ignore_errors=False) Tiedosto C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, rivi 730, rmtree palauttaa _rmtree_unsafe(polku, virhe) Tiedosto C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32pylibshutil. , rivi 589, _rmtree_unsafe onror(os.scandir, polku, sys.exc_info()) Tiedosto C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, rivi 586, tiedostossa _rmtree_unsafe ja os.scandir(path) muodossa scandir_it: FileNotFoundError: [WinError 3] Järjestelmä ei löydä määritettyä polkua: 'D:/Pycharm projects/techcodeview.com/Authors'

Esimerkki 3: Poikkeuskäsittelijä

Errorissa tulee välittää funktio, jonka tulee sisältää kolme parametria.

    toiminto – toiminto, joka aiheutti poikkeuksen. polku – polun nimi välitetty, joka aiheutti poikkeuksen poiston yhteydessä excinfo – poikkeustiedot sys.exc_info()

Alla toteutus

Python 3




# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # exception handler> def> handler(func, path, exc_info):> >print>(>'Inside handler'>)> >print>(exc_info)> # location> location>=> 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path>=> os.path.join(location,>dir>)> # removing directory> shutil.rmtree(path, onerror>=>handler)>

>

>

Lähtö:

Sisäinen käsittelijä (, FileNotFoundError(2, 'Järjestelmä ei löydä määritettyä polkua'), ) Sisäinen käsittelijä (, FileNotFoundError(2, 'Järjestelmä ei löydä määritettyä tiedostoa'), )

Tiedoston/hakemiston poistaminen käyttämällä polkua pathlib.Path(empty_dir_path).rmdir()

Tyhjä hakemisto voidaan myös poistaa tai poistaa käyttämällä pathlib-moduulin rmdir()-metodia. Ensin meidän on asetettava polku hakemistolle, ja sitten kutsumme rmdir()-metodia kyseiselle polulle

Syntaksi pathlib.Path

Syntaksi: pathlib.Path(tyhjä_hakemisto_polku).rmdir()

Parametri:

    empty_dir_path: Polun kaltainen objekti, joka edustaa tyhjää hakemistopolkua. Polun kaltainen objekti on joko merkkijono tai tavuinen objekti, joka edustaa polkua.

Palautustyyppi: Tämä menetelmä ei palauta mitään arvoa.

Esimerkki: Poista tyhjä hakemisto komennolla rmdir()

Tässä esimerkissä poistamme tyhjän kansion, meidän on vain määritettävä kansion nimi, jos se on juurihakemistossa

Python 3




import> pathlib> # Deleting an empty folder> # Put your file address> empty_dir>=> r>'Untitled Folder'> path>=> pathlib.Path(empty_dir).rmdir()> print>(>'Deleted '%s' successfully'> %> empty_dir)>

>

>

Lähtö:

Deleted 'Untitled Folder' successfully>