Rozdział 15 · Python i akta
Zmiana nazw, kopiowanie, usuwanie
Te operacje naprawdę zmieniają system plików — i nie zawsze są odwracalne.
Zmiana nazwy
rename.py
from pathlib import Path
old_path = Path("chernovik.txt")
old_path.rename("gotovo.txt")
Operacje z plikami mogą zawiódć
Zmiana nazw, kopiowanie i usuwanie to dostęp do systemu operacyjnego, a nie gwarantowane sukcesy Python. Mogą zawiódć z wielu powodów związanych z systemem plików lub uprawnieniami (Rozdział 15.22) — nie należy ich koniecznie traktować jako niepowodzenie.
replace() dla „Zamień plik docelowy”
replace.py
from pathlib import Path
novy_fajl = Path("save_new.json")
tselevoy_fajl = Path("save.json")
novy_fajl.replace(tselevoy_fajl) # zastępuje plik docelowy, jeśli już istnieje
Wrócimy do tego w sekcji 15.28 — to sedno wzorca bezpiecznej trwałości „Najpierw tymczasowy plik, potem wymień główny.”
Kopiowanie jest shutil
shutil_copy.py
import shutil
shutil.copy("save.json", "save_backup.json")
pathlib i shutil się uzupełniają
pathlib świetnie działa z samymi ścieżkami, a wysokopoziomowe kopiowanie plików zazwyczaj przejmuje moduł standardowej biblioteki shutil (shutil.copy, shutil.copy2, shutil.move).Usuwanie – z najwyższą starannością
Usunięcie to druzgocąca operacja
path.unlink() usuwa plik bez możliwości cofnięcia za pomocą narzędzi samego programu. path.rmdir() usuwa tylko pusty folder. W tym kursie nigdy nie używamy rekurencyjnego usuwania (shutil.rmtree) jako ćwiczenie samouka — a wszystkie przykłady usuwania w praktyce działają tylko z plikami utworzonymi przez praktykę w osobnym folderze roboczym, nigdy z dowolnymi ścieżkami użytkownika.unlink_bezopasno.py
from pathlib import Path
vremenny_fajl = Path("chernovik_kopiya.txt")
if vremenny_fajl.exists():
vremenny_fajl.unlink()
Praktyka: Przemianuj, kopiuj, usuń
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji