Dzēsiet direktoriju vai failu, izmantojot Python
Šajā rakstā mēs apskatīsim, kā Python dzēst (noņemt) failus un direktorijus. Python nodrošina dažādas metodes un funkcijas failu un direktoriju noņemšanai. Failu var noņemt atbilstoši viņu vajadzībām.
Dažādas Python piedāvātās metodes ir:
- Izmantojot os.remove()
- Izmantojot os.rmdir()
- Izmantojot shutil.rmtree()
- Izmantojot pathlib.Path(empty_dir_path).rmdir()
Faila/direktorāta dzēšana, izmantojot os.remove() metodi
OS modulis Python nodrošina funkcijas mijiedarbībai ar operētājsistēmu. Visas OS moduļa funkcijas tiek paaugstinātas OSERror ja ir nederīgi vai nepieejami failu nosaukumi un ceļi, vai citi argumenti, kuriem ir pareizais tips, bet kurus operētājsistēma nepieņem.
os.remove() metode Python tiek izmantots, lai noņemtu vai dzēstu faila ceļu. Šī metode nevar noņemt vai izdzēst direktoriju . Ja norādītais ceļš ir direktorijs, metode aktivizēs OSError.
os.remove() sintakse
Sintakse: os.remove(ceļš, *, dir_fd = nav)
Parametrs: ceļš: Ceļam līdzīgs objekts, kas attēlo faila ceļu. Ceļam līdzīgs objekts ir virknes vai baitu objekts, kas attēlo ceļu.
dir_fd (neobligāts): faila deskriptors, kas attiecas uz direktoriju. Šī parametra noklusējuma vērtība ir None. Ja norādītais ceļš ir absolūts, dir_fd tiek ignorēts.
Piezīme: “*” parametru sarakstā norāda, ka visi turpmākie parametri (šeit mūsu gadījumā “dir_fd”) ir tikai atslēgvārdu parametri, un tos var nodrošināt, izmantojot to nosaukumu, nevis kā pozicionālo parametru.
Atgriešanas veids: Šī metode neatgriež nekādu vērtību.
1. piemērs: faila dzēšana programmā Python
Pieņemsim, ka mapē esošais fails ir:
Mēs vēlamies izdzēst failu 1 no iepriekš minētās mapes. Zemāk ir tā ieviešana.
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)> |
Izvade:
2. piemērs. Noņemiet failu ar absolūto ceļu
Ja norādītais ceļš ir direktorijs.
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> |
Izvade:
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'
3. piemērs: Pirms dzēšanas pārbaudiet, vai fails pastāv
Apstrādes kļūda, izmantojot os.remove() metodi.
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'> )> |
Izvade:
[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed
Piezīme: Lai uzzinātu vairāk par os.remove(), noklikšķiniet šeit.
Faila/direktorāta dzēšana, izmantojot os.rmdir() metodi
Python metode os.rmdir() tiek izmantota, lai noņemtu vai dzēstu tukšu direktoriju. OSERror tiks paaugstināts, ja norādītais ceļš nav tukšs direktorijs.
os.rmdir() sintakse
Sintakse: os.rmdir(ceļš, *, dir_fd = nav)
Parametrs:
ceļš: ceļam līdzīgs objekts, kas attēlo faila ceļu. Ceļam līdzīgs objekts ir virknes vai baitu objekts, kas attēlo ceļu. dir_fd (neobligāts): faila deskriptors, kas attiecas uz direktoriju. Šī parametra noklusējuma vērtība ir None. Ja norādītais ceļš ir absolūts, dir_fd tiek ignorēts.
Piezīme: “*” parametru sarakstā norāda, ka visi turpmākie parametri (šeit mūsu gadījumā “dir_fd”) ir tikai atslēgvārdu parametri, un tos var nodrošināt, izmantojot to nosaukumu, nevis kā pozicionālo parametru.
Atgriešanas veids: Šī metode neatgriež nekādu vērtību.
1. piemērs: Dzēst visus direktorijus no direktorija
Pieņemsim, ka direktoriji ir -
Mēs vēlamies noņemt direktoriju Geeks. Zemāk ir tā ieviešana.
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)> |
Izvade:
2. piemērs. Kļūdu apstrāde, dzēšot direktoriju
Kļūdu apstrāde, izmantojot os.rmdir() metodi,
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> |
Izvade:
[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed
Piezīme: Lai uzzinātu vairāk par os.rmdir(), noklikšķiniet šeit.
Faila/direktorāta dzēšana, izmantojot shutil.rmtree()
shutil.rmtree() tiek izmantots, lai izdzēstu visu direktoriju koku, ceļam jānorāda uz direktoriju (bet ne simboliska saite uz direktoriju).
Shutil.rmtree() sintakse
Sintakse: shutil.rmtree(ceļš, ignore_errors=False, onerror=Nav)
Parametri:
ceļš: ceļam līdzīgs objekts, kas attēlo faila ceļu. Ceļam līdzīgs objekts ir virknes vai baitu objekts, kas attēlo ceļu. ignore_errors: ja ignore_errors ir patiesa, kļūdas, kas radušās neveiksmīgu noņemšanas rezultātā, tiks ignorētas. onror: ja ignore_errors ir nepatiess vai izlaists, šādas kļūdas tiek apstrādātas, izsaucot onror norādīto apdarinātāju.
Izdzēsiet direktoriju un tajā esošos failus.
1. piemērs:
Pieņemsim, ka direktorijs un apakšdirektoriji ir šādi.
# Vecāku direktorijs:
# Direktorijs vecākdirektorijā:
# Fails apakšdirektorijā:
Piemērs: Dzēsiet visus failus no direktorija
Mēs vēlamies noņemt direktoriju Autori. Zemāk ir tā ieviešana.
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)> |
Izvade:
2. piemērs. Ignorējiet kļūdu, dzēšot direktoriju
Nododot garām ignore_errors = True.
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> |
Izvade:
Izsekošana (pēdējais zvans): fails D:/Pycharm projects/gfg/gfg.py, 16. rindiņa, iekš shutil.rmtree(path, ignore_errors=False) Fails C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, 730. rinda, rmtree atgriež _rmtree_unsafe(ceļš, kļūda) Fails C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32pylibshutil. , 589. rindiņa, _rmtree_unsafe onror(os.scandir, path, sys.exc_info()) Fails C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, 586. rinda, _rmtree_unsafe ar os.scandir(path) kā scandir_it: FileNotFoundError: [WinError 3] Sistēma nevar atrast norādīto ceļu: 'D:/Pycharm projects/techcodeview.com/Authors'
3. piemērs: izņēmumu apstrādātājs
Kļūdas gadījumā ir jānodod funkcija, kurai jāsatur trīs parametri.
- funkcija – funkcija, kas radīja izņēmumu. ceļš — nodots ceļa nosaukums, kas izraisīja izņēmumu, noņemot excinfo — informācija par izņēmumu, ko izvirzīja sys.exc_info()
Zemāk ir tā ieviešana
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)> |
Izvade:
Iekšējais apdarinātājs (, FileNotFoundError(2, 'Sistēma nevar atrast norādīto ceļu'), ) Iekšējais apdarinātājs (, FileNotFoundError(2, 'Sistēma nevar atrast norādīto failu'), )
Faila/direktora dzēšana, izmantojot ceļu lib.Path(empty_dir_path).rmdir()
Tukšu direktoriju var arī noņemt vai dzēst, izmantojot pathlib moduļa rmdir () metodi. Pirmkārt, mums ir jāiestata direktorija ceļš, un tad mēs šajā ceļā izsaucam metodi rmdir()
Pathlib.Path sintakse
Sintakse: pathlib.Path(empty_dir_path).rmdir()
Parametrs:
empty_dir_path: ceļam līdzīgs objekts, kas attēlo tukšu direktorijas ceļu. Ceļam līdzīgs objekts ir virknes vai baitu objekts, kas attēlo ceļu.
Atgriešanas veids: Šī metode neatgriež nekādu vērtību.
Piemērs: izdzēsiet tukšu direktoriju, izmantojot rmdir()
Šajā piemērā mēs izdzēsīsim tukšu mapi, mums tikai jānorāda mapes nosaukums, ja tas atrodas saknes direktorijā
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)> |
Izvade:
Deleted 'Untitled Folder' successfully