Python | os.statvfs 函數

最近更新時間 2020-12-09 12:09:43

os.statvfs 函數在所給的路徑上執行 statvfs() 系統調用。返回值是一個對象,其屬性描述了所給路徑上的文件系統,並且與 statvfs 結構體的成員相對應,即:f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax, f_fsid。

為 f_flag 屬性位定義了兩個模塊級常量:如果存在 ST_RDONLY 位,則文件系統以只讀掛載;如果存在 ST_NOSUID 位,則文件系統禁用或不支持 setuid/setgid 位。

函數定義

os.statvfs(path)
# 函數定義

if sys.platform != 'win32':
    def statvfs(path: _FdOrPathType) -> statvfs_result: ...  # Unix only

# 返回值 os.statvfs_result 定義
if sys.platform != 'win32':
    class statvfs_result:  # Unix only
        f_bsize: int  # It represents the file system block size
        f_frsize: int # It represents the fragment size
        f_blocks: int # It represents the size of fs in f_frsize units
        f_bfree: int # It represents the number of free blocks 
        f_bavail: int # It represents the number of free blocks for unprivileged users
        f_files: int # It represents the number of inodes
        f_ffree: int # t represents the number of free inodes
        f_favail: int # It represents the number of free inodes for unprivileged users
        f_fsid: int # It represents the file system ID
        f_flag: int # It represents the mount flags
        f_namemax: int # It represents the maximum filename length

兼容性:Unix 系統。

參數

  • checkpath - 目錄或文件路徑。

返回值

  • checkstatvfs_result - 返回值參見函數定義。

示例1: - 使用 os.statvfs() 函數返回 statvfs() 系統調用對象,比如文件名最大值。

# coding=utf-8

# Python3 代碼
# 講解怎樣使用 os.statvfs() 函數執行 statvfs() 系統調用

# 引入 os 庫
import os

# 文件路徑
path = "foo.txt"

# 執行 statvfs() 系統調用
statvfs = os.statvfs(path)

# 打印文件狀態圖
print(statvfs)

# 打印最大文件名
print("Name Max::", statvfs.f_namemax)
os.statvfs_result(f_bsize=4096, f_frsize=4096, f_blocks=10255672, f_bfree=1571516, f_bavail=1043132, f_files=2621440, f_ffree=1660839, f_favail=1660839, f_flag=4096, f_namemax=255)
Name Max:: 255
為基於 GNU/glibc 的系統還定義了額外的模塊級常量。它們是 ST_NODEV (禁止訪問設備專用文件),ST_NOEXEC (禁止執行程序),ST_SYNCHRONOUS (寫入後立即同步),ST_MANDLOCK (允許文件系統上的強制鎖定),ST_WRITE (寫入文件/目錄/符號鏈接),ST_APPEND (僅追加文件),ST_IMMUTABLE (不可變文件),ST_NOATIME (不更新訪問時間),ST_NODIRATIME (不更新目錄訪問時間),ST_RELATIME (相對於 mtime/ctime 更新訪問時間)。
rss_feed