Python| os.DirEntry.stat() 方法
Python中的OS 模块提供了与操作系统交互的功能。操作系统属于 Python 的标准实用程序模块。该模块提供了一种使用操作系统相关功能的可移植方式。
os 模块的os.scandir()
方法产生os.DirEntry
对象,对应于指定路径给定的目录中的条目。 os.DirEntry
对象具有各种属性和方法,用于暴露目录条目的文件路径和其他文件属性。
os.DirEntry
对象上的stat()
方法用于获取条目的os.stat_result对象。
注意: os.DirEntry
对象旨在在迭代后使用和丢弃,因为对象的属性和方法会缓存它们的值并且永远不会再次重新获取值。如果文件的元数据已更改,或者自调用os.scandir()方法以来已经过去了很长时间。我们不会获得最新信息。
Syntax: os.DirEntry.stat(*, follow_symlinks = True)
Parameter:
follow_symlinks: A boolean value is required for this parameter. If the entry is a symbolic link and follow_symlinks is True then the method will operate on the path symbolic link point to. If the entry is a symbolic link and follow_symlinks is False then the method will operate on the symbolic link itself. If the entry is not a symbolic link then follow_symlinks parameter is ignored. The default value of this parameter is True.
Return value: This method returns an os.stat_result object for the entry. Following are the attributes of os.stat_result object:
- st_mode: It represents file type and file mode bits (permissions).
- st_ino: It represents the inode number on Unix and the file index on Windows platform.
- st_dev: It represents the identifier of the device on which this file resides.
- st_nlink: It represents the number of hard links.
- st_uid: It represents the user identifier of the file owner.
- st_gid: It represents the group identifier of the file owner.
- st_size: It represents the size of the file in bytes.
- st_atime: It represents the time of most recent access. It is expressed in seconds.
- st_mtime: It represents the time of most recent content modification. It is expressed in seconds.
- st_ctime: It represents the time of most recent metadata change on Unix and creation time on Windows. It is expressed in seconds.
- st_atime_ns: It is same as st_atime but the time is expressed in nanoseconds as an integer.
- st_mtime_ns: It is same as st_mtime but the time is expressed in nanoseconds as an integer.
- st_ctime_ns: It is same as st_ctime but the time is expressed in nanoseconds as an integer.
- st_blocks: It represents the number of 512-byte blocks allocated for file.
- st_rdev: It represents the type of device, if an inode device.
- st_flags: It represents the user defined flags for file.
代码: os.DirEntry.stat()
方法的使用
# Python program to explain os.DirEntry.stat() method
# importing os module
import os
# Directory to be scanned
# Path
path = "/home / ihritik"
# Print status of all
# files in the above
# specified path
# Using os.scandir() method
# scan the specified directory
# and yield os.DirEntry object
# for each file and sub-directory
print("Status of all files in path '% s':" % path)
with os.scandir(path) as itr:
for entry in itr :
# Check if the entry
# is a file
if entry.is_file() :
# Print file status
print("Status of % s:" % entry.name)
print(entry.stat(), "\n")
Status of all files in path '/home/ihritik':
Status of file.txt:
os.stat_result(st_mode=33248, st_ino=801366, st_dev=2056, st_nlink=2, st_uid=1000,
st_gid=1000, st_size=409, st_atime=1566360293, st_mtime=1566287810,
st_ctime=1566291428)
Status of tree.cpp:
os.stat_result(st_mode=33188, st_ino=801364, st_dev=2056, st_nlink=1, st_uid=1000,
st_gid=1000, st_size=820, st_atime=1565604415, st_mtime=1565604415,
st_ctime=1565604415)
Status of graph.cpp:
os.stat_result(st_mode=33188, st_ino=801237, st_dev=2056, st_nlink=1, st_uid=1000,
st_gid=1000, st_size=1729, st_atime=1561515200, st_mtime=1561515069,
st_ctime=1561515069)
Status of abc.txt
os.stat_result(st_mode=33434, st_ino=801196, st_dev=2056, st_nlink=1, st_uid=1000,
st_gid=1000, st_size=0, st_atime=1560204341, st_mtime=1560204341,
st_ctime=1560204349)
参考资料: https://docs。 Python.org/3/library/os.html#os.DirEntry.stat