Slet en mappe eller fil ved hjælp af Python

Slet en mappe eller fil ved hjælp af Python

I denne artikel vil vi dække, hvordan du sletter (fjerner) filer og mapper i Python. Python giver forskellige metoder og funktioner til at fjerne filer og mapper. Man kan fjerne filen efter deres behov.

Forskellige metoder leveret af Python er -

Sletning af fil/dir ved hjælp af os.remove() metoden

OS modul i Python giver funktioner til at interagere med operativsystemet. Alle funktioner i os-modulet hæves OSError i tilfælde af ugyldige eller utilgængelige filnavne og -stier eller andre argumenter, der har den korrekte type, men som ikke accepteres af operativsystemet.

os.remove() metode i Python bruges til at fjerne eller slette en filsti. Denne metode kan ikke fjerne eller slette en mappe . Hvis den angivne sti er en mappe, vil OSError blive rejst af metoden.

Syntaks for os.remove()

Syntaks: os.remove(sti, *, dir_fd = Ingen)

Parameter: sti: Et stilignende objekt, der repræsenterer en filsti. Et stilignende objekt er enten et streng- eller bytesobjekt, der repræsenterer en sti.

    dir_fd (valgfrit): En filbeskrivelse, der henviser til en mappe. Standardværdien for denne parameter er Ingen. Hvis den angivne sti er absolut, ignoreres dir_fd.

Bemærk: '*' i parameterlisten angiver, at alle følgende parametre (her i vores tilfælde 'dir_fd') kun er nøgleordsparametre, og de kan angives ved at bruge deres navn, ikke som positionsparameter.

Returtype: Denne metode returnerer ingen værdi.

Eksempel 1: Slet en fil i Python

Antag, at filen i mappen er:

Vi ønsker at slette fil1 fra ovenstående mappe. Nedenfor er implementeringen.

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:

Eksempel 2: Fjern fil med absolut sti

Hvis den angivne sti er en mappe.

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' 

Eksempel 3: Tjek, om filen findes, før du sletter

Håndtering af fejl under brug af os.remove()-metoden.

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 

Bemærk: For at vide mere om os.remove() klik her.

Sletning af fil/dir ved hjælp af os.rmdir() metoden

os.rmdir()-metoden i Python bruges til at fjerne eller slette en tom mappe. OSError vil blive hævet, hvis den angivne sti ikke er en tom mappe.

Syntaks for os.rmdir()

Syntaks: os.rmdir(sti, *, dir_fd = Ingen)

Parameter:

    sti: Et stilignende objekt, der repræsenterer en filsti. Et stilignende objekt er enten et streng- eller bytesobjekt, der repræsenterer en sti. dir_fd (valgfrit): En filbeskrivelse, der henviser til en mappe. Standardværdien for denne parameter er Ingen. Hvis den angivne sti er absolut, ignoreres dir_fd.

Bemærk: '*' i parameterlisten angiver, at alle følgende parametre (her i vores tilfælde 'dir_fd') kun er nøgleordsparametre, og de kan angives ved at bruge deres navn, ikke som positionsparameter.

Returtype: Denne metode returnerer ingen værdi.

Eksempel 1: Slet alle mapper fra en mappe

Antag, at mapperne er -

Vi ønsker at fjerne mappen Geeks. Nedenfor er implementeringen.

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:

Eksempel 2: Fejlhåndtering under sletning af en mappe

Håndtering af fejl under brug af 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 

Bemærk: For at vide mere om os.rmdir() klik her.

Sletning af fil/dir ved hjælp af shutil.rmtree()

shutil.rmtree() bruges til at slette et helt mappetræ, en sti skal pege på en mappe (men ikke et symbolsk link til en mappe).

Syntaks for shutil.rmtree()

Syntaks: shutil.rmtree(sti, ignore_errors=False, onerror=Ingen)

Parametre:

    sti: Et stilignende objekt, der repræsenterer en filsti. Et stilignende objekt er enten et streng- eller bytesobjekt, der repræsenterer en sti. ignore_errors: Hvis ignore_errors er sandt, vil fejl som følge af mislykkede fjernelser blive ignoreret. onerror: Hvis ignore_errors er falsk eller udeladt, håndteres sådanne fejl ved at kalde en handler specificeret af onerror.

Slet en mappe og filerne i den.

Eksempel 1:

Antag, at biblioteket og underbibliotekerne er som følger.

# Forældremappe:

# Directory inde i overordnet mappe:

# Fil i undermappen:

Eksempel: Slet alle filer fra en mappe

Vi ønsker at fjerne biblioteket Forfattere. Nedenfor er implementeringen.

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

Produktion:

Eksempel 2: Ignorer fejl under sletning af en mappe

Ved at sende ignore_errors = Sand.

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:

Sporing (seneste opkald sidst): Fil D:/Pycharm projects/gfg/gfg.py, linje 16, i shutil.rmtree(sti, ignore_errors=False) Fil C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, linje 730, i rmtree return _rmtree_unsafe(path, onerror) Fil C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py , linje 589, i _rmtree_unsafe onerror(os.scandir, sti, sys.exc_info()) Fil C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, linje 586, i _rmtree_unsafe med os.scandir(path) som scandir_it: FileNotFoundError: [WinError 3] Systemet kan ikke finde den angivne sti: 'D:/Pycharm projects/techcodeview.com/Authors'

Eksempel 3: Undtagelsesbehandler

Ved en fejl skal der sendes en funktion, som skal indeholde tre parametre.

    funktion – funktion, der rejste undtagelsen. sti – stinavn bestået, hvilket rejste undtagelsen, mens fjernelse excinfo – undtagelsesinfo rejst af sys.exc_info()

Nedenfor er implementeringen

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 handler (, FileNotFoundError(2, ‘Systemet kan ikke finde den angivne sti’), ) Inside handler (, FileNotFoundError(2, ‘Systemet kan ikke finde den angivne fil’), )

Sletter fil/katalog ved hjælp af pathlib.Path(empty_dir_path).rmdir()

En tom mappe kan også fjernes eller slettes ved hjælp af pathlib-modulets rmdir()-metode. Først skal vi indstille stien til mappen, og derefter kalder vi rmdir()-metoden på den sti

Syntaks for pathlib.Path

Syntaks: pathlib.Path(empty_dir_path).rmdir()

Parameter:

    empty_dir_path: Et sti-lignende objekt, der repræsenterer en tom mappesti. Et stilignende objekt er enten et streng- eller bytesobjekt, der repræsenterer en sti.

Returtype: Denne metode returnerer ingen værdi.

Eksempel: Slet en tom mappe ved hjælp af rmdir()

I dette eksempel vil vi slette en tom mappe, vi skal blot angive mappenavnet, hvis det er i rodkataloget

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