os.stat(), os.lstat() și os.fstat() în Python

Toate informațiile despre un fișier: mărime, permisiuni, proprietar, date.

Sintaxă
os.stat(cale, *, follow_symlinks=True)
os.lstat(cale)
os.fstat(fd)

Ce face os.stat(), os.lstat() și os.fstat()

stat() returnează un obiect os.stat_result cu st_size (octeți), st_mode (tip și permisiuni), st_uid/st_gid (proprietar), st_mtime/st_atime/st_ctime (date), st_ino și st_dev (identificarea fișierului), st_nlink (numărul de legături fizice).

lstat() descrie legătura simbolică însăși, iar fstat(fd) un fișier deschis. Modulul stat are funcții pentru interpretarea lui st_mode (S_ISDIR, filemode).

Parametri

Parametru Descriere
cale / fd Fișierul.
follow_symlinks Dacă este False, se comportă ca lstat.

Ce returnează

Un obiect os.stat_result.

Exemple

Exemplul 1: Informații despre un fișier

import os, stat
with open("date.csv", "w") as f:
    f.write("a,b\n1,2\n")
os.chmod("date.csv", 0o640)
st = os.stat("date.csv")
print(st.st_size, stat.filemode(st.st_mode), st.st_nlink)
os.symlink("date.csv", "scurt")
print(stat.S_ISLNK(os.lstat("scurt").st_mode), stat.S_ISREG(os.stat("scurt").st_mode))
with open("date.csv") as f:
    print(os.fstat(f.fileno()).st_size)

Rezultat

8 -rw-r----- 1
True True
8

Greșeli frecvente

  • Faci mai multe apeluri os.path.getsize, getmtime… pentru același fișier. Un singur os.stat le dă pe toate.

Comenzi înrudite