os.statvfs() și os.fstatvfs() în Python

Fișiere și directoare (os) Python 3.0+ (Unix)

Informații despre sistemul de fișiere: mărimea blocurilor, blocuri libere, număr de fișiere.

Sintaxă
os.statvfs(cale)
os.fstatvfs(fd)

Ce face os.statvfs() și os.fstatvfs()

statvfs() returnează informații despre sistemul de fișiere care conține calea: f_frsize (mărimea unui bloc), f_blocks (blocuri totale), f_bfree (blocuri libere), f_bavail (blocuri libere pentru utilizatorii obișnuiți), f_files/f_ffree (inode-uri) și f_namemax. fstatvfs() lucrează pe un fișier deschis. Pentru spațiul liber, shutil.disk_usage() este mai simplu.

Parametri

Parametru Descriere
cale / fd Orice fișier de pe sistemul de fișiere verificat.

Ce returnează

Un obiect os.statvfs_result.

Exemple

Exemplul 1: Spațiu liber calculat manual

import os
s = os.statvfs("/")
liber = s.f_bavail * s.f_frsize
print(f"liber: {liber / 1024**3:.1f} GB, nume max: {s.f_namemax}")
with open("/etc/hosts") as f:
    print(os.fstatvfs(f.fileno()).f_frsize)

Rezultat posibil (diferă la fiecare rulare)

liber: 248.3 GB, nume max: 255
4096

Greșeli frecvente

  • Folosești f_bfree pentru spațiul disponibil: include blocurile rezervate pentru administrator. Folosește f_bavail.

Comenzi înrudite