Python os.fstatvfs() Method



The fstatvfs() method of Python OS module is used to retrieve information about the file system containing the file associated with the respective file descriptor.

When we invoke this method with a valid file descriptor, it performs a "statvfs()" system call on the path associated with that file descriptor. The method returns an object of class "os.statvfs_result", which contains attributes representing various details about the file system. Those are listed below −

  • f_bsize − file system block size

  • f_frsize − fragment size

  • f_blocks − size of fs in f_frsize units

  • f_bfree − free blocks

  • f_bavail − free blocks for non-root

  • f_files − inodes

  • f_ffree − free inodes

  • f_favail − free inodes for non-root

  • f_fsid − file system ID

  • f_flag − mount flags

  • f_namemax − maximum filename length

Syntax

The syntax for Python os.fstatvfs() method is as follows −

os.fstatvfs(fd)

Parameters

The Python os.fstatvfs() method accepts a single parameter −

  • fd − This is the file descriptor for which system information is to be returned.

Return Value

The Python os.fstatvfs() method returns information about the file system.

Example

If we pass the file descriptor to the fstatvfs() method as a parameter value, it will return the file system information in the form of an "os.statvfs_result" object as illustrated in the below example.

#!/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!!")

When we run above program, it produces following result −

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!!

Example

In the following example, we are passing two atrributes named "f_namemax" and "f_bfree" of "os.statvfs_result" object to fstatvfs() method. This will display the Maximum filename length and Free blocks.

#!/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!!")

When we execute the above code, it will display the following output −

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