Path.symlink_to(), hardlink_to() și readlink() în Python

Căi (pathlib) Python 3.4+ (readlink: 3.9+, hardlink_to: 3.10+)

Creează legături simbolice sau fizice și citește destinația unei legături.

Sintaxă
p.symlink_to(tinta, target_is_directory=False)
p.hardlink_to(tinta)
p.readlink()

Ce face Path.symlink_to(), hardlink_to() și readlink()

p.symlink_to(tinta) face din p o legătură simbolică (scurtătură) spre tinta. p.hardlink_to(tinta) creează o legătură fizică: un al doilea nume pentru același fișier de pe disc. readlink() returnează calea spre care arată o legătură simbolică.

Atenție la ordine: metoda se apelează pe legătura nouă, iar argumentul este fișierul existent (invers față de os.symlink(sursa, legatura)). Pe Windows, legăturile simbolice pot cere drepturi speciale.

Parametri

Parametru Descriere
tinta Fișierul sau directorul existent.
target_is_directory Doar pe Windows: legătura este spre un director.

Ce returnează

readlink: un Path. Celelalte: None.

Exemple

Exemplul 1: Legături simbolice și fizice

from pathlib import Path
Path("config_v2.ini").write_text("versiunea 2")
Path("config.ini").symlink_to("config_v2.ini")
print(Path("config.ini").readlink(), Path("config.ini").read_text())
Path("copie_fizica.ini").hardlink_to("config_v2.ini")
print(Path("config_v2.ini").stat().st_nlink)

Rezultat

config_v2.ini versiunea 2
2

Greșeli frecvente

  • Inversezi argumentele și primești FileExistsError, pentru că încerci să creezi legătura chiar peste fișierul existent.

Comenzi înrudite