Python os.DirEntry.stat()方法
Python os模块的os.scandir()方法产生os.DirEntry对象,对应于指定路径给出的目录中的条目。os.DirEntry对象具有各种属性和方法,用于公开目录项的文件路径和其他文件属性。
在os.DirEntry对象上的stat()方法用于获取一个条目的os.stat_result对象。
注意:os.DirEntry对象的目的是在迭代后被使用和扔掉,因为对象的属性和方法缓存了它们的值,再也不会重新获取值。如果文件的元数据已经被更改,或者如果自调用os.scandir()方法以来已经经过了很长时间。我们将得不到最新的信息。
os.DirEntry.stat()语法
os.DirEntry.stat(*, follow_symlinks = True)
os.DirEntry.stat()参数
follow_symlinks:该参数需要一个布尔值。如果条目是一个符号链接,并且follow_symlinks为True,那么该方法将对符号链接指向的路径进行操作。如果条目是一个符号链接,并且follow_symlinks为False,那么该方法将对符号链接本身进行操作。如果条目不是符号链接,则忽略follow_symlinks参数。默认值为“True”。
返回值:该方法为条目返回一个os.stat_result对象。以下是os.stat_result对象的属性:
- st_mode:表示文件类型和文件模式位(权限)。
- st_ino:它表示Unix上的inode编号和Windows平台上的文件索引。
- st_dev:它表示该文件所在设备的标识符。
- st_nlink:表示硬链接的数量。
- st_uid:表示文件所有者的用户标识符。
- st_gid:表示文件所有者的组标识符。
- st_size:以字节为单位表示文件的大小。
- st_atime:表示最近访问的时间。它的单位是秒。
- st_mtime:表示最近的内容修改时间。它的单位是秒。
- st_ctime:表示Unix上最近一次元数据更改的时间,以及Windows上的创建时间。它的单位是秒。
- st_atime_ns:与st_atime相同,但时间以整数形式表示,单位为纳秒。
- st_mtime_ns:与st_mtime相同,但时间是整数形式,以纳秒为单位。
- st_ctime_ns:与st_ctime相同,但时间是以纳秒为单位的整数。
- st_blocks:它表示为文件分配的512字节块的数量。
- st_rdev:如果是inode设备,则表示设备的类型。
- st_flags:表示用户定义的文件标志。
os.DirEntry.stat() 示例
使用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/ library/os.html#os.DirEntry.stat