Python os.DirEntry.stat()方法

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程