Usuń katalog lub plik za pomocą Pythona

Usuń katalog lub plik za pomocą Pythona

W tym artykule omówimy, jak usunąć (usunąć) pliki i katalogi w Pythonie. Python udostępnia różne metody i funkcje usuwania plików i katalogów. Można usunąć plik w zależności od potrzeb.

Różne metody dostarczane przez Python to –

Usuwanie pliku/katalogu przy użyciu metody os.remove().

Moduł systemu operacyjnego w Pythonie udostępnia funkcje umożliwiające interakcję z systemem operacyjnym. Wszystkie funkcje w module os podnoszą OSEBłąd w przypadku nieprawidłowych lub niedostępnych nazw plików i ścieżek lub innych argumentów, które mają poprawny typ, ale nie są akceptowane przez system operacyjny.



metoda os.remove() w Pythonie służy do usuwania lub usuwania ścieżki pliku. Ta metoda nie można usunąć ani usunąć katalogu . Jeśli podana ścieżka jest katalogiem, metoda wywoła OSError.

Składnia os.remove()

Składnia: os.remove(ścieżka, *, dir_fd = Brak)

Parametr: ścieżka: Obiekt podobny do ścieżki reprezentujący ścieżkę pliku. Obiekt podobny do ścieżki to obiekt typu string lub bytes reprezentujący ścieżkę.

    dir_fd (opcjonalnie): Deskryptor pliku odnoszący się do katalogu. Domyślna wartość tego parametru to Brak. Jeśli określona ścieżka jest bezwzględna, katalog dir_fd jest ignorowany.

Notatka: Znak „*” na liście parametrów wskazuje, że wszystkie kolejne parametry (w naszym przypadku „dir_fd”) są parametrami zawierającymi wyłącznie słowa kluczowe i można je podać, używając ich nazwy, a nie parametru pozycyjnego.

Typ zwrotu: Ta metoda nie zwraca żadnej wartości.

Przykład 1: Usuń plik w Pythonie

Załóżmy, że plik zawarty w folderze to:

Chcemy usunąć plik 1 z powyższego folderu. Poniżej realizacja.

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

Wyjście:

Przykład 2: Usuń plik ze ścieżką bezwzględną

Jeśli określona ścieżka jest katalogiem.

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>

Wyjście:

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' 

Przykład 3: Sprawdź, czy plik istnieje przed usunięciem

Błąd obsługi podczas korzystania z metody 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'> )>

Wyjście:

[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed 

Notatka: Aby dowiedzieć się więcej o os.remove() kliknij tutaj.

Usuwanie pliku/katalogu przy użyciu metody os.rmdir().

Metoda os.rmdir() w Pythonie służy do usuwania lub kasowania pustego katalogu. OSEBłąd zostanie wywołany, jeśli określona ścieżka nie jest pustym katalogiem.

Składnia os.rmdir()

Składnia: os.rmdir(ścieżka, *, katalog_fd = Brak)

Parametr:

    ścieżka: Obiekt podobny do ścieżki reprezentujący ścieżkę pliku. Obiekt podobny do ścieżki to obiekt typu string lub bytes reprezentujący ścieżkę. dir_fd (opcjonalnie): Deskryptor pliku odnoszący się do katalogu. Domyślna wartość tego parametru to Brak. Jeśli określona ścieżka jest bezwzględna, katalog dir_fd jest ignorowany.

Notatka: Znak „*” na liście parametrów wskazuje, że wszystkie kolejne parametry (w naszym przypadku „dir_fd”) są parametrami zawierającymi wyłącznie słowa kluczowe i można je podać, używając ich nazwy, a nie parametru pozycyjnego.

Typ zwrotu: Ta metoda nie zwraca żadnej wartości.

Przykład 1: Usuń wszystkie katalogi z katalogu

Załóżmy, że katalogi to –

Chcemy usunąć katalog Geeks. Poniżej realizacja.

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

Wyjście:

Przykład 2: Obsługa błędów podczas usuwania katalogu

Obsługa błędów podczas korzystania z metody os.rmdir(),

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>

Wyjście:

[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed 

Notatka: Aby dowiedzieć się więcej o os.rmdir() kliknij tutaj.

Usuwanie pliku/katalogu za pomocą Shutil.rmtree()

Shutil.rmtree() służy do usuwania całego drzewa katalogów, ścieżka musi wskazywać na katalog (ale nie na dowiązanie symboliczne do katalogu).

Składnia Shutil.rmtree()

Składnia: shutil.rmtree(ścieżka, ignorowanie_błędów=Fałsz, onerror=Brak)

Parametry:

    ścieżka: Obiekt podobny do ścieżki reprezentujący ścieżkę pliku. Obiekt podobny do ścieżki to obiekt typu string lub bytes reprezentujący ścieżkę. ignorowanie_błędów: Jeśli ignorowanie_błędów ma wartość true, błędy powstałe w wyniku nieudanych usunięć zostaną zignorowane. onerror: Jeśli ignorowanie_błędów ma wartość false lub jest pominięte, takie błędy są obsługiwane przez wywołanie procedury obsługi określonej przez onerror.

Usuń katalog i zawarte w nim pliki.

Przykład 1:

Załóżmy, że katalog i podkatalogi są następujące.

# Nadrzędna Lokalizacja:

# Katalog w katalogu nadrzędnym:

# Plik w podkatalogu:

Przykład: Usuń wszystkie pliki z katalogu

Chcemy usunąć katalog Authors. Poniżej realizacja.

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

Wyjście:

Przykład 2: Zignoruj ​​błąd podczas usuwania katalogu

Przekazując ignorowanie_błędów = 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>

Wyjście:

Traceback (ostatnie ostatnie połączenie): Plik D:/Pycharm projekty/gfg/gfg.py, linia 16, w shutil.rmtree(ścieżka, ignorowanie_błędów=False) Plik C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, linia 730, w rmtree return _rmtree_unsafe(path, onerror) Plik C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py , linia 589, w _rmtree_unsafe onerror(os.scandir, ścieżka, sys.exc_info()) Plik C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, linia 586, w _rmtree_unsafe z os.scandir(path) jako scandir_it: FileNotFoundError: [WinError 3] System nie może znaleźć określonej ścieżki: „D:/Pycharm projekty/techcodeview.com/Authors”

Przykład 3: Procedura obsługi wyjątków

W onerror należy przekazać funkcję, która musi zawierać trzy parametry.

    funkcja – funkcja, która zgłosiła wyjątek. path – przekazana nazwa ścieżki, która wywołała wyjątek podczas usuwania. excinfo – informacja o wyjątku wywołana przez sys.exc_info()

Poniżej realizacja

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

Wyjście:

Procedura obsługi wewnętrznej (, FileNotFoundError(2, „System nie może znaleźć określonej ścieżki”), ) Procedura obsługi wewnętrznej (, FileNotFoundError(2, „System nie może znaleźć określonego pliku”), )

Usuwanie pliku/katalogu za pomocą pathlib.Path(empty_dir_path).rmdir()

Pusty katalog można również usunąć lub skasować za pomocą metody rmdir() modułu pathlib. Najpierw musimy ustawić ścieżkę do katalogu, a następnie wywołać na tej ścieżce metodę rmdir().

Składnia pathlib.Path

Składnia: pathlib.Path(pusta ścieżka_katalogu).rmdir()

Parametr:

    pusty_katalog_ścieżka: Obiekt podobny do ścieżki reprezentujący pustą ścieżkę do katalogu. Obiekt podobny do ścieżki to obiekt typu string lub bytes reprezentujący ścieżkę.

Typ zwrotu: Ta metoda nie zwraca żadnej wartości.

Przykład: usuń pusty katalog za pomocą rmdir()

W tym przykładzie usuniemy pusty folder, wystarczy podać nazwę folderu, jeśli znajduje się on w katalogu głównym

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

Wyjście:

Deleted 'Untitled Folder' successfully 


Najpopularniejsze Artykuły

Kategoria

Ciekawe Artykuły