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 -
- 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
# 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