Python| os.fstatvfs() 方法
Python中的OS 模块提供了与操作系统交互的功能。操作系统属于 Python 的标准实用程序模块。该模块提供了一种使用操作系统相关功能的可移植方式。
Python中的os.fstatvfs()
方法用于获取有关包含与给定文件描述符关联的文件的文件系统的信息。为了获取文件系统信息,该方法对与给定文件描述符关联的路径执行statvfs()系统调用。
文件描述符是对应于文件或其他输入/输出资源(例如管道或网络套接字)的小整数值。它是资源的抽象指标,并充当句柄来执行各种较低级别的 I/O 操作,如读、写、发送等。
例如:标准输入通常是值为 0 的文件描述符,标准输出通常是值为 1 的文件描述符,标准错误通常是值为 2 的文件描述符。
当前进程打开的其他文件将获得值 3、4、5 等等。
注意: os.fstatvfs()
方法仅在 Unix 平台上可用。
Syntax: os.fstatvfs(fd)
Parameter:
fd: A file descriptor for which file system information is required.
Return Type: This method returns an object of class ‘os.statvfs_result’ whose attributes represents the information about the filesystem containing the file associated with the given file descriptor.
The returned os.statvfs_result object has following attributes:
- f_bsize: It represents the file system block size
- f_frsize: It represents the fragment size
- f_blocks It represents the size of fs in f_frsize units
- f_bfree: It represents the number of free blocks
- f_bavail: It represents the number of free blocks for unprivileged users
- f_files: It represents the number of inodes
- f_ffree: It represents the number of free inodes
- f_favail: It represents the number of free inodes for unprivileged users
- f_fsid: It represents the file system ID
- f_flag: It represents the mount flags
- f_namemax: It represents the maximum filename length
# Python program to explain os.fstatvfs() method
# importing os module
import os
# File path
path = "/home / ihritik / Desktop / file.txt"
# open the file and get
# the file descriptor associated
# with it using os.open() method
fd = os.open(path, os.O_WRONLY)
# get the information about the
# filesystem containing the file
# associated with the given
# file descriptor using os.fstatvfs() method
info = os.fstatvfs(fd)
# Print the information
# about the file system
print(info)
# Print the file system block size
print("File system block size:", info.f_bsize)
# Print the number of free blocks
# in the file system
print("Number of free blocks:", info.f_bfree)
# Close the file descriptor
os.close(fd)
os.statvfs_result(f_bsize=4096, f_frsize=4096, f_blocks=59798433, f_bfree=56521834,
f_bavail=53466807, f_files=15261696, f_ffree=14933520, f_favail=14933520, f_flag=4096,
f_namemax=255)
File system block size: 4096
Number of free blocks: 56517297