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 -
- os.remove()
- Käyttämällä os.rmdir()
- Käyttämällä shutil.rmtree()
- Käyttämällä pathlib.Path(tyhjä_hakemisto_polku).rmdir()
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>