Usuwanie plików i katalogów w Pythonie ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
21.01.2025

Usuwanie plików i katalogów w Pythonie

W Pythonie praca z plikami i katalogami jest częstym zadaniem, szczególnie w aplikacjach wymagających manipulacji plikami. Ten samouczek skupia się na zaawansowanych metodach usuwania plików i katalogów przy użyciu różnych modułów Pythona, w tym os, shutil i pathlib. Każdy z tych modułów zapewnia inną funkcjonalność do pracy z systemem plików, umożliwiając efektywne zarządzanie plikami i katalogami. Aby pobrać Pythona, odwiedź poniższy link z oficjalnego źródła python.org.

Zrozumienie modułów

1. Moduł os

Moduł os zapewnia możliwość korzystania z funkcji zależnych od systemu operacyjnego, takich jak odczyt lub zapis w systemie plików. Obejmuje on funkcje usuwania plików i katalogów. Korzystanie z modułu os w środowisku hostingu Linux VPS zapewnia skuteczną kontrolę nad zarządzaniem plikami i innymi operacjami na poziomie systemu. Moduł ten pozwala programistom na wykonywanie czynności takich jak odczytywanie, zapisywanie i usuwanie plików i katalogów bezpośrednio na serwerze

Kluczowe cechy:

  • os.remove(path): Usuwa ścieżkę do pliku.
  • os.rmdir(path): Usuwa (niszczy) ścieżkę do katalogu. Katalog musi być pusty.
  • os.unlink(path): Inna nazwa funkcji os.remove() używanej do usuwania pliku.

2. Moduł shutil

Moduł shutil oferuje wysokopoziomowy interfejs do pracy z plikami. Jest szczególnie przydatny do kopiowania i usuwania katalogów i plików.

Kluczowe funkcje:

  • shutil.rmtree(path): Rekursywnie usuwa katalog i całą jego zawartość, w tym podkatalogi i pliki.
  • shutil.move(src, dst): Przenosi plik lub katalog do innej lokalizacji. Może być również używana do usuwania plików poprzez przeniesienie ich do nieistniejącego katalogu.

3. Moduł Pathlib

Moduł pathlib zapewnia obiektowe podejście do pracy ze ścieżkami systemu plików. Moduł ten pojawił się w Pythonie 3.4 i jest uważany za bardziej intuicyjny i łatwiejszy do odczytania.

Kluczowe cechy:

  • Path.unlink(): Usuwa plik.
  • Path.rmdir(): Usuwa pusty katalog.
  • Path.rmtree(): Aby usunąć katalog i jego zawartość, funkcja shutil.rmtree() jest zwykle używana w połączeniu z Path.

Zaawansowane metody usuwania plików i katalogów

Korzystanie z modułu os

Oto jak używać modułu os do usuwania plików i katalogów:

Opcja A: Uruchamianie w interaktywnym Pythonie

  1. Otwórz interaktywną sesję Pythona wpisując:
    python3

    (Użyj python, jeśli tak jest skonfigurowany Python w twoim systemie, ale python3 jest zwykle zalecanym poleceniem dla Pythona 3.x).

  2. Skopiuj i wklej kod bezpośrednio do sesji interaktywnej (skrypt poniżej)

ptak B: Zapisywanie do pliku skryptu Pythona

  1. Utwórz nowy plik za pomocą edytora tekstu, takiego jak nano:
    nano remove_file.py
  2. Skopiuj i wklej następujący kod do pliku (skrypt poniżej)
  3. Możesz teraz uruchomić skrypt Pythona z terminala:
    python3 remove_file.py

Usuwanie pojedynczego pliku

import os
file_path = 'example.txt'
try:
os.remove(file_path)
print(f'Pomyślnie usunięto {file_path}')
except FileNotFoundError:
print(f'Plik {file_path} nie istnieje')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'Wystąpił błąd: {e}')

Wynik:

Usunięcie pustego katalogu

Krok 1: Utwórz katalog

Najpierw utwórz pusty katalog o nazwie example_dir. Można to zrobić za pomocą następującego polecenia:

mkdir example_dir

Krok 2: Utworzenie skryptu w języku Python

Teraz musisz utworzyć skrypt Pythona, który będzie zawierał kod usuwający pusty katalog. Do utworzenia skryptu można użyć edytora tekstu, takiego jak nano.

  1. Otwórz nano i utwórz nowy plik Pythona:
    nano remove_directory.py
  2. Skopiuj i wklej następujący kod do pliku (kod poniżej)
  3. Teraz uruchom utworzony skrypt Pythona:
    python3 remove_directory.py

import os
directory_path = 'example_dir'
try:
os.rmdir(directory_path)

f'Pomyślnie usunięto katalog {directory_path}')
except FileNotFoundError:
print(f'Katalog {directory_path} nie istnieje')
except OSError:
print(f'Katalog {katalog_path} nie jest pusty')
except Exception as e:
print(f'Wystąpił błąd: {e}')

Wyjście:

Korzystanie z modułu shutil

Krok 1: Utwórz katalog z zawartością

Najpierw utwórz katalog o nazwie example_dir_with_content i dodaj do niego kilka plików. Można to zrobić za pomocą następujących poleceń:

mkdir example_dir_with_content
touch example_dir_with_content/file1.txt
touch example_dir_with_content/file2.txt

Krok 2: Utwórz skrypt w języku Python

Teraz musisz utworzyć skrypt Pythona zawierający kod usuwający katalog i jego zawartość. Do utworzenia skryptu można użyć edytora tekstu, takiego jak nano.

  1. Otwórz nano i utwórz nowy plik Pythona:
    nano remove_directory_content.py
  2. Skopiuj i wklej następujący kod do pliku (kod poniżej)
  3. Teraz uruchom utworzony skrypt Pythona:
    python3 remove_directory_content.py

Użyj shutil.rmtree(), aby usunąć katalogi z zawartością:

import shutil
'example_dir_with_content'
try:
shutil.rmtree(directory_path)
print(f'Pomyślnie usunięto katalog {directory_path} i jego zawartość')
except FileNotFoundError:
print(f'Katalog {directory_path} nie istnieje')
except PermissionError:
print(f'Permission denied: unable to delete {directory_path}')
except Exception as e:
print(f'Wystąpił błąd: {e}')

Wyjście:

Korzystanie z modułu pathlib

moduł pathlib zapewnia nowoczesny interfejs do ścieżek systemu plików:

Usuwanie pliku

from pathlib import Path
file_path = Path('example.txt')
try:
file_path.unlink()
print(f'Pomyślnie usunięto {file_path}')
except FileNotFoundError:
print(f'Plik {file_path} nie istnieje')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'Wystąpił błąd: {e}')

Wyjście:

Usuwanie pustego katalogu

from pathlib import Pathdirectory_path = Path('example_dir'
try:
directory_path.rmdir() # To zadziała tylko wtedy, gdy katalog jest pusty
print(f'Pomyślnie usunięto katalog {directory_path}')
except FileNotFoundError:
print(f'Katalog {directory_path} nie istnieje')
except OSError:
print(f'Katalog {katalog_path} nie jest pusty')
except Exception as e:
print(f'Wystąpił błąd: {e}')

Wyjście:

Łaskawa obsługa błędów

Podczas pracy z operacjami na plikach, bardzo ważne jest, aby obsługiwać wyjątki z wdziękiem, aby zapobiec awarii programu. Typowe wyjątki obejmują:

  • FileNotFoundError: Występuje, gdy podejmowana jest próba usunięcia nieistniejącego pliku lub katalogu.
  • PermissionError: Występuje, gdy użytkownik nie ma niezbędnychuprawnień do usunięcia pliku lub katalogu.
  • OSError: Występuje w przypadku różnych błędów związanych z systemem operacyjnym, w tym próby usunięcia niepustego katalogu.

Wnioski

W tym samouczku omówiliśmy, jak używać modułów Pythona, takich jak os, shutil i pathlib do usuwania plików i katalogów. Każdy moduł ma unikalne zalety, a zrozumienie, jak efektywnie z nich korzystać, rozszerzy twoje możliwości zarządzania systemami plików w aplikacjach. Opanowując te techniki, będziesz w stanie zautomatyzować zadania zarządzania plikami, pracować z plikami bardziej intuicyjnie i pisać solidne skrypty, które współdziałają z systemem plików.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills