pathlib.Path în Python

Căi (pathlib) Python 3.4+ (with_segments: 3.12+)

Căile ca obiecte: unire cu /, citire, scriere și verificări, într-un singur loc.

Sintaxă
from pathlib import Path
Path("date") / "2026" / "raport.csv"
Path.cwd(), Path.home()

Ce face pathlib.Path

Path reprezintă o cale de fișier sau director și are metode pentru aproape tot ce face os.path, plus citire și scriere. Căile se unesc cu operatorul / sau cu joinpath(). Path.cwd() dă directorul curent, iar Path.home() directorul personal.

Path creează automat tipul potrivit sistemului: PosixPath pe Linux/macOS, WindowsPath pe Windows. Clasele „pure” (PurePath, PurePosixPath, PureWindowsPath) lucrează doar cu textul căii, fără acces la disc, deci poți prelucra căi Windows pe Linux și invers. with_segments() (3.12+) este metoda prin care toate operațiile creează căi noi; o suprascrii în subclase.

Majoritatea funcțiilor din Python acceptă direct obiecte Path (open(), shutil, json prin open), iar str(cale) dă textul.

Parametri

Parametru Descriere
*pathsegments Bucățile căii (texte sau alte Path).

Ce returnează

Un obiect Path.

Exemple

Exemplul 1: Construire și unire

from pathlib import Path, PurePosixPath, PureWindowsPath, PurePath
p = Path("date") / "2026" / "raport.csv"
print(p, type(p).__name__)
print(Path("/srv").joinpath("site", "index.html"))
print(PureWindowsPath("C:/Users") / "Ana" / "cv.pdf")
print(PurePosixPath("/etc") / "hosts", isinstance(p, PurePath))
print(p.with_segments("alt", "fisier.txt"))

Rezultat

date/2026/raport.csv PosixPath
/srv/site/index.html
C:\Users\Ana\cv.pdf
/etc/hosts True
alt/fisier.txt

Exemplul 2: Directorul curent și cel personal

from pathlib import Path
print(Path.cwd())
print(Path.home())
print(Path.home() / "Documente")

Rezultat posibil (diferă la fiecare rulare)

/home/ana/proiecte/magazin
/home/ana
/home/ana/Documente

Exemplul 3: Scriere și citire rapidă

from pathlib import Path
d = Path("note")
d.mkdir(exist_ok=True)
(d / "azi.txt").write_text("Cumpără pâine", encoding="utf-8")
print((d / "azi.txt").read_text(encoding="utf-8"))
print([f.name for f in d.iterdir()])

Rezultat

Cumpără pâine
['azi.txt']

Greșeli frecvente

  • Lipești căile cu +: Path("a") + "b" dă TypeError. Folosește /.
  • Instanțiezi WindowsPath pe Linux și primești UnsupportedOperation. Pentru căi Windows pe alt sistem folosește PureWindowsPath.

Comenzi înrudite