Python os.fstatvfs() 方法



Python OS 模块的 fstatvfs() 方法用于检索与相应文件描述符关联的文件所在文件系统的信息。

当我们用有效的文件描述符调用此方法时,它会在与该文件描述符关联的路径上执行“statvfs()”系统调用。该方法返回一个“os.statvfs_result”类的对象,其中包含表示文件系统各种详细信息的属性。这些属性列在下面:

  • f_bsize - 文件系统块大小

  • f_frsize - 碎片大小

  • f_blocks - 以 f_frsize 单位表示的 fs 大小

  • f_bfree - 空闲块

  • f_bavail - 非 root 用户可用的空闲块

  • f_files - inode

  • f_ffree - 空闲 inode

  • f_favail - 非 root 用户可用的空闲 inode

  • f_fsid - 文件系统 ID

  • f_flag - 挂载标志

  • f_namemax - 最大文件名长度

语法

Python os.fstatvfs() 方法的语法如下:

os.fstatvfs(fd)

参数

Python os.fstatvfs() 方法接受一个参数:

  • fd - 这是要返回系统信息的文件描述符。

返回值

Python os.fstatvfs() 方法返回有关文件系统的信息。

示例

如果我们将文件描述符作为参数值传递给 fstatvfs() 方法,它将以“os.statvfs_result”对象的格式返回文件系统信息,如下例所示。

#!/usr/bin/python
import os, sys

# Open a file
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# Now get  the touple
info = os.fstatvfs(fd)
print ("File Info :", info)

# Close opened file
os.close( fd)
print("File closed successfully!!")

当我们运行上述程序时,它会产生以下结果:

File Info : os.statvfs_result(f_bsize=4096, f_frsize=4096, 
f_blocks=6276673, f_bfree=3002417, f_bavail=2677246, 
f_files=1605632, f_ffree=1375154, f_favail=1375154, f_flag=4096, f_namemax=255)

File closed successfully!!

示例

在以下示例中,我们将“os.statvfs_result”对象的两个名为“f_namemax”和“f_bfree”的属性传递给 fstatvfs() 方法。这将显示最大文件名长度和空闲块。

#!/usr/bin/python
import os, sys

# Open a file
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
info = os.fstatvfs(fd)

# Now get maximum filename length
print ("Maximum filename length :%d" % info.f_namemax)

# Now get free blocks
print ("Free blocks :%d" % info.f_bfree)

# Close opened file
os.close( fd)
print("File closed successfully!!")

当我们执行上述代码时,它将显示以下输出:

Maximum filename length :255
Free blocks :3002417
File closed successfully!!
python_files_io.htm
广告