Zaawansowany przewodnik po usuwaniu plików i katalogów w Pythonie
W Pythonie obsługa plików i katalogów jest powszechnym zadaniem, szczególnie w aplikacjach wymagających manipulacji plikami. Niniejszy przewodnik skupia się na zaawansowanych technikach 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 różne funkcje dla operacji systemu plików, pozwalając na efektywne zarządzanie plikami i katalogami. Aby pobrać Pythona, przejdź do poniższego linku z oficjalnego źródła python.org.
Zrozumienie modułów
1. Moduł os
Moduł os zapewnia sposób korzystania z funkcji zależnych od systemu operacyjnego, takich jak odczyt lub zapis w systemie plików. Zawiera funkcje usuwania plików i katalogów. Korzystanie z modułu os w środowisku hostingu Linux VPS zapewnia wydajną kontrolę nad zarządzaniem plikami i innymi operacjami na poziomie systemu. Moduł ten umożliwia programistom wykonywanie czynności takich jak odczytywanie, zapisywanie i usuwanie plików i katalogów bezpośrednio na serwerze
Kluczowe funkcje:
- os.remove(path): Usuwa (kasuje) ścieżkę pliku.
- os.rmdir(path): Usuwa ścieżkę katalogu. Katalog musi być pusty.
- os.unlink(path): Inna nazwa dla os.remove(), używana do usuwania pliku.
2. Moduł shutil
Moduł shutil oferuje interfejs wyższego poziomu dla operacji na plikach. Jest on 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, co może być również użyte do usunięcia plików poprzez przeniesienie ich do nieistniejącego katalogu.
3. Moduł pathlib
Moduł pathlib zapewnia obiektowe podejście do obsługi ścieżek systemu plików. Moduł ten został wprowadzony w Pythonie 3.4 i jest uważany za bardziej intuicyjny i czytelny.
Kluczowe funkcje:
- Path.unlink(): Usuwa plik.
- Path.rmdir(): Usuwa pusty katalog.
- Path.rmtree(): Aby usunąć katalog i jego zawartość, zwykle używa się shutil.rmtree() w połączeniu z Path.
Zaawansowane techniki 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
- Otwórz interaktywną sesję Pythona wpisując:
(użyj python, jeśli tak jest skonfigurowany Python w twoim systemie, ale ogólnie python3 jest zalecanym poleceniem dla Pythona 3.x).
- Skopiuj i wklej kod bezpośrednio do sesji interaktywnej (skrypt poniżej)
opcja B: Zapisywanie do pliku skryptu Pythona
- Utwórz nowy plik za pomocą edytora tekstu, takiego jak nano:
- Skopiuj i wklej następujący kod do pliku (skrypt poniżej)
- Teraz możesz uruchomić skrypt Pythona z terminala:
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}')