все Python 3Linux · macOSosфункция
os.fstatvfs
os — файловая система
Как statvfs, но по открытому файловому дескриптору. Доступно на Unix.
Синтаксис
os.fstatvfs(...)
Отвечает про файловую систему того файла, который открыт, — даже если путь к нему с тех пор переименовали или смонтировали поверх другую систему. Поля те же, что у statvfs: свободное для пользователя место — f_bavail * f_frsize. На Windows недоступна, переносимая альтернатива — shutil.disk_usage.
Примеры
import os
fd = os.open('/', os.O_RDONLY) # → ? только Unix: дескриптор каталога-точки монтирования
st = os.fstatvfs(fd) # → ? только Unix: os.statvfs_result — та же структура, что у os.statvfs
print(st.f_bsize) # → ? только Unix: предпочтительный размер блока ФС в байтах, например 4096
print(st.f_bavail * st.f_frsize // 1024 // 1024) # → ? только Unix: свободно мегабайт для обычного пользователя, например 15340
print(os.fstatvfs(fd).f_blocks == os.statvfs('/').f_blocks) # → ? только Unix: True — fstatvfs адресует ФС по дескриптору, statvfs по пути
os.close(fd) # → ? только Unix: дескриптор освобождён
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности