注册

Python os.DirEntry.stat() 方法详解

os.DirEntry.stat() 是一个 Python 内置函数,用于获取文件或目录的统计信息。DirEntry 提供了有关在目录中找到的项目的信息,而 stat() 方法返回 DirEntry 对象所指代的文件的元数据信息。

该方法返回一个“os.stat_result”类型的对象,该对象包含有关文件或目录的以下信息:

  • st_mode:文件类型和访问权限。
  • st_ino:硬链接的标识符。
  • st_dev:文件所在的设备的标识符。
  • st_nlink:文件的硬链接数。
  • st_uid:文件所属用户的标识符。
  • st_gid:文件所属组的标识符。
  • st_size:文件大小(以字节为单位)。
  • st_atime:文件的访问时间。
  • st_mtime:文件的修改时间。
  • st_ctime:文件的状态更改时间。

下面是 os.DirEntry.stat() 的使用方法:

import os

file_path = '/path/to/file'
dir_path = '/path/to/directory'

with os.scandir(dir_path) as entries:
    for entry in entries:
        if entry.is_file() and entry.name == 'test.txt':
            # 获取文件的元数据信息
            metadata = entry.stat()
            print('文件大小:', metadata.st_size)
            print('修改时间:', metadata.st_mtime)
        elif entry.is_dir() and entry.name == 'testdir':
            # 获取目录的元数据信息
            metadata = entry.stat()
            print('创建时间:', metadata.st_ctime)

在这个例子中,我们使用 os.scandir() 函数遍历一个目录中的所有项,并检查是文件还是目录。如果找到一个文件且文件名为 'test.txt',则调用 os.DirEntry.stat() 获得文件的元数据信息,包括文件大小和修改时间。如果找到一个目录且目录名为 'testdir',则调用 os.DirEntry.stat() 获得目录的元数据信息,包括创建时间。

另外需要注意的一点是,os.DirEntry.stat() 方法仅适用于 Python 3.5 及以上的版本。对于 Python 3.4 或更早版本的用户,在没有 os.DirEntry 类的情况下,可以使用 os.stat() 函数来获取文件或目录的元数据信息。