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
Otwórz praktykę →