Ce face Path.exists(), is_file(), is_dir() și celelalte verificări
exists(), is_file() și is_dir() sunt verificările de zi cu zi. is_symlink() verifică legăturile simbolice, iar is_mount() punctele de montare. Din Python 3.12/3.13, exists, is_file și is_dir acceptă follow_symlinks=False.
Verificările speciale de Unix: is_fifo() (canal cu nume), is_socket() (socket Unix), is_block_device() (disc, ca /dev/sda), is_char_device() (dispozitiv caracter, ca /dev/null). is_junction() are sens doar pe Windows. Pentru căi inexistente, toate returnează False.
Ce returnează
True sau False.
Exemple
Exemplul 1: Verificări uzuale
from pathlib import Path
Path("poze").mkdir(exist_ok=True)
Path("cv.pdf").touch()
Path("link_cv").symlink_to("cv.pdf")
for p in [Path("poze"), Path("cv.pdf"), Path("link_cv"), Path("lipsa")]:
print(p, p.exists(), p.is_file(), p.is_dir(), p.is_symlink())
print(Path("/").is_mount(), Path("poze").is_junction())
Rezultat
poze True False True False
cv.pdf True True False False
link_cv True True False True
lipsa False False False False
True False
Exemplul 2: Tipuri speciale de fișiere (Unix)
import os, socket
from pathlib import Path
os.mkfifo("canal")
s = socket.socket(socket.AF_UNIX)
s.bind("server.sock")
print(Path("canal").is_fifo(), Path("server.sock").is_socket())
print(Path("/dev/null").is_char_device(), Path("/dev/null").is_block_device())
s.close()
Rezultat
True True
True False
Greșeli frecvente
- Apelezi
p.existsfără paranteze: obții metoda, care este mereu adevărată într-unif.
Comenzi înrudite
os.path.exists() și os.path.lexists(): Verifică dacă un fișier sau director există.os.path.isfile(), isdir(), islink(), ismount(), isjunction(), isdevdrive(): Verifică ce fel de element se află la o cale: fișier, director, legătură simbolică, punct de montare.Path.stat(), lstat(), chmod(), lchmod(), owner(), group(): Informații despre un fișier (mărime, date, permisiuni, proprietar) și schimbarea permisiunilor.