Ce face Path.mkdir(), rmdir(), touch() și unlink()
mkdir() creează directorul. Cu parents=True creează și directoarele intermediare lipsă, iar cu exist_ok=True nu dă eroare dacă directorul există. rmdir() șterge un director gol.
touch() creează un fișier gol sau, dacă există, îi actualizează momentul modificării. unlink() șterge un fișier sau o legătură; cu missing_ok=True nu dă eroare dacă fișierul lipsește. Pentru directoare cu conținut folosește shutil.rmtree().
Parametri
| Parametru | Descriere |
|---|---|
parents |
Creează și directoarele părinte. |
exist_ok |
Nu dă eroare dacă există deja. |
missing_ok |
Pentru unlink: nu dă eroare dacă lipsește. |
Ce returnează
None.
Exemple
Exemplul 1: Structură de directoare
from pathlib import Path
baza = Path("proiect/src/utilitare")
baza.mkdir(parents=True, exist_ok=True)
(baza / "__init__.py").touch()
print(sorted(str(p) for p in Path("proiect").rglob("*")))
(baza / "__init__.py").unlink()
baza.rmdir()
print(baza.exists(), baza.parent.exists())
Path("nu_exista.txt").unlink(missing_ok=True)
Rezultat
['proiect/src', 'proiect/src/utilitare', 'proiect/src/utilitare/__init__.py']
False True
Exemplul 2: Erori frecvente
from pathlib import Path
Path("plin").mkdir()
(Path("plin") / "a.txt").touch()
for operatie in [lambda: Path("plin").mkdir(), lambda: Path("plin").rmdir(), lambda: Path("x/y/z").mkdir()]:
try:
operatie()
except OSError as e:
print(type(e).__name__, "-", e.strerror)
Rezultat
FileExistsError - File exists
OSError - Directory not empty
FileNotFoundError - No such file or directory
Greșeli frecvente
- Creezi un director imbricat fără
parents=Trueși primeștiFileNotFoundError. - Încerci
rmdir()pe un director cu fișiere:OSError: Directory not empty.
Comenzi înrudite
os.mkdir() și os.makedirs(): Creează un director sau un întreg șir de directoare imbricate.shutil.rmtree(): Șterge un director împreună cu tot conținutul lui.Path.iterdir(), glob(), rglob() și walk(): Parcurge conținutul unui director, cu sau fără subdirectoare, eventual filtrat după un model.