Ce face Path.stat(), lstat(), chmod(), lchmod(), owner(), group()
stat() returnează un obiect os.stat_result cu st_size (mărimea), st_mtime (ultima modificare), st_mode (tipul și permisiunile) și altele. lstat() descrie legătura simbolică însăși, nu fișierul spre care arată.
chmod(0o644) schimbă permisiunile (în notație octală), iar lchmod() le schimbă pe legătura simbolică (nu este disponibilă pe Linux). owner() și group() returnează numele utilizatorului și al grupului proprietar (doar Unix).
Parametri
| Parametru | Descriere |
|---|---|
mod |
Pentru chmod: permisiunile, de exemplu 0o600. |
Ce returnează
stat: os.stat_result. owner/group: text. chmod: None.
Exemple
Exemplul 1: Mărime și permisiuni
import stat
from pathlib import Path
p = Path("secret.key")
p.write_text("cheie")
p.chmod(0o600)
info = p.stat()
print(info.st_size, oct(info.st_mode & 0o777), stat.filemode(info.st_mode))
Path("link.key").symlink_to("secret.key")
print(stat.S_ISLNK(Path("link.key").lstat().st_mode), stat.S_ISLNK(Path("link.key").stat().st_mode))
Rezultat
5 0o600 -rw-------
True False
Exemplul 2: Proprietar și lchmod
from pathlib import Path
p = Path("raport.pdf")
p.touch()
print(p.owner(), p.group())
Path("scurt").symlink_to(p)
Path("scurt").lchmod(0o600)
Rezultat posibil (macOS; pe Linux lchmod dă NotImplementedError)
ana staff
Greșeli frecvente
- Scrii permisiunile în zecimal:
chmod(644)setează alte drepturi decâtchmod(0o644). Folosește prefixul0o.
Comenzi înrudite
os.stat(), os.lstat() și os.fstat(): Toate informațiile despre un fișier: mărime, permisiuni, proprietar, date.os.chmod(), fchmod(), lchmod(), chflags(), lchflags(): Schimbă permisiunile unui fișier și, pe BSD/macOS, flag-urile speciale.os.path.getsize(), getmtime(), getatime(), getctime(): Mărimea unui fișier și momentele ultimei modificări, ale ultimului acces și ale schimbării.