I den här artikeln kommer vi att täcka hur man tar bort (ta bort) filer och kataloger i Python. Python tillhandahåller olika metoder och funktioner för att ta bort filer och kataloger. Man kan ta bort filen enligt deras behov.
Olika metoder som tillhandahålls av Python är -
- Använder os.remove()
- Använder os.rmdir()
- Använder shutil.rmtree()
- Använder pathlib.Path(empty_dir_path).rmdir()
Ta bort fil/katalog med metoden os.remove().
OS-modul i Python tillhandahåller funktioner för att interagera med operativsystemet. Alla funktioner i os-modulen höjs OSError i fallet med ogiltiga eller otillgängliga filnamn och sökvägar, eller andra argument som har rätt typ men som inte accepteras av operativsystemet.
os.remove() -metoden i Python används för att ta bort eller ta bort en filsökväg. Den här metoden kan inte ta bort eller ta bort en katalog . Om den angivna sökvägen är en katalog kommer OSError att uppstå av metoden.
Syntax för os.remove()
Syntax: os.remove(sökväg, *, dir_fd = Ingen)
Parameter: väg: Ett sökvägsliknande objekt som representerar en filsökväg. Ett banliknande objekt är antingen ett sträng- eller bytesobjekt som representerar en bana.
dir_fd (valfritt): En filbeskrivning som refererar till en katalog. Standardvärdet för denna parameter är None. Om den angivna sökvägen är absolut ignoreras dir_fd.
Notera: '*' i parameterlistan indikerar att alla följande parametrar (här i vårt fall 'dir_fd') är parametrar endast för nyckelord och de kan tillhandahållas med deras namn, inte som positionsparameter.
Returtyp: Denna metod returnerar inget värde.
Exempel 1: Ta bort en fil i Python
Anta att filen i mappen är:
Vi vill ta bort fil1 från mappen ovan. Nedan följer genomförandet.
Python3
# 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)> |
>
>
Produktion:
Exempel 2: Ta bort fil med absolut sökväg
Om den angivna sökvägen är en katalog.
Python3
# 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> |
>
>
Produktion:
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'>
Exempel 3: Kontrollera om filen finns innan du tar bort
Hanteringsfel vid användning av metoden os.remove().
Python3
# 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'>)> |
>
>
Produktion:
[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed>
Notera: För att veta mer om os.remove() klicka här .
Ta bort fil/katalog med metoden os.rmdir().
os.rmdir()-metoden i Python används för att ta bort eller ta bort en tom katalog. OSError kommer att höjas om den angivna sökvägen inte är en tom katalog.
Syntax för os.rmdir()
Syntax: os.rmdir(sökväg, *, dir_fd = Ingen)
Parameter:
sökväg: Ett sökvägsliknande objekt som representerar en filsökväg. Ett banliknande objekt är antingen ett sträng- eller bytesobjekt som representerar en bana. dir_fd (valfritt): En filbeskrivning som refererar till en katalog. Standardvärdet för denna parameter är None. Om den angivna sökvägen är absolut ignoreras dir_fd.
Notera: '*' i parameterlistan indikerar att alla följande parametrar (här i vårt fall 'dir_fd') är parametrar endast för nyckelord och de kan tillhandahållas med deras namn, inte som positionsparameter.
Returtyp: Denna metod returnerar inget värde.
Exempel 1: Ta bort alla kataloger från en katalog
Anta att katalogerna är -
Vi vill ta bort katalogen Geeks. Nedan följer genomförandet.
Python3
# 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)> |
>
>
Produktion:
Exempel 2: Felhantering vid borttagning av en katalog
Hantera fel när du använder os.rmdir()-metoden,
Python3
# 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> |
>
>
Produktion:
[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed>
Notera: För att veta mer om os.rmdir() klicka här .
Ta bort fil/katalog med hjälp av shutil.rmtree()
shutil.rmtree() används för att ta bort ett helt katalogträd, en sökväg måste peka till en katalog (men inte en symbolisk länk till en katalog).
Syntax för shutil.rmtree()
Syntax: shutil.rmtree(sökväg, ignore_errors=False, onerror=Ingen)
Parametrar:
sökväg: Ett sökvägsliknande objekt som representerar en filsökväg. Ett banliknande objekt är antingen ett sträng- eller bytesobjekt som representerar en bana. ignore_errors: Om ignore_errors är sant, kommer fel som är ett resultat av misslyckade borttagningar att ignoreras. onerror: Om ignore_errors är falskt eller utelämnat, hanteras sådana fel genom att anropa en hanterare specificerad av onerror.
Ta bort en katalog och filerna i den.
Exempel 1:
Anta att katalogen och underkatalogerna är som följer.
# Föräldrakatalog:
# Katalog i överordnad katalog:
# Fil i underkatalogen:
Exempel: Ta bort alla filer från en katalog
Vi vill ta bort katalogen Författare. Nedan följer genomförandet.
Python3
typer av joins i rdbms
# 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)> |
>
>
Produktion:
Exempel 2: Ignorera fel när en katalog tas bort
Genom att skicka ignore_errors = Sant.
Python3
# 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> |
>
>
Produktion:
Spårning (senaste anropet senast): Fil D:/Pycharm projects/gfg/gfg.py, rad 16, i shutil.rmtree(sökväg, ignore_errors=False) Fil C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, rad 730, i rmtree return _rmtree_unsafe(sökväg, onerror) Fil C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py , rad 589, i _rmtree_unsafe onerror(os.scandir, sökväg, sys.exc_info()) Fil C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, rad 586, i _rmtree_unsafe med os.scandir(sökväg) som scandir_it: FileNotFoundError: [WinError 3] Systemet kan inte hitta den angivna sökvägen: 'D:/Pycharm projects/techcodeview.com/Authors'
Exempel 3: Undantagshanterare
I ett fel ska en funktion skickas som måste innehålla tre parametrar.
- funktion – funktion som tog upp undantaget. sökväg – sökvägsnamn passerade vilket ledde till undantaget medan borttagning excinfo – undantagsinfo upphävt av sys.exc_info()
Nedan följer genomförandet
Python3
# 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)> |
>
>
Produktion:
Inside-hanterare (, FileNotFoundError(2, 'Systemet kan inte hitta den angivna sökvägen'), ) Inside-hanterare (, FileNotFoundError(2, 'Systemet kan inte hitta den angivna filen'), )
Ta bort fil/katalog med sökvägen pathlib.Path(empty_dir_path).rmdir()
En tom katalog kan också tas bort eller raderas med pathlib-modulens rmdir()-metod. Först måste vi ställa in sökvägen för katalogen, och sedan anropar vi metoden rmdir() på den sökvägen
Syntax för pathlib.Path
Syntax: pathlib.Path(empty_dir_path).rmdir()
Parameter:
empty_dir_path: Ett sökvägsliknande objekt som representerar en tom katalogsökväg. Ett banliknande objekt är antingen ett sträng- eller bytesobjekt som representerar en bana.
Returtyp: Denna metod returnerar inget värde.
Exempel: Ta bort en tom katalog med rmdir()
I det här exemplet kommer vi att ta bort en tom mapp, vi behöver bara ange mappnamnet om det finns i rotkatalogen
Python3
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)> |
>
>
Produktion:
Deleted 'Untitled Folder' successfully>