目录
1. p.stat(*, follow_symlinks=True)
2. p.lstat()
3. p.group()
4. p.owner()
5. p.readlink()
下述方法,基于pathlib.PurePath、pathlib.Path函数模块。
1. p.stat(*, follow_symlinks=True)
返回一个 os.stat_result 对象,其中包含有关该路径的信息(如 os.stat()),每次调用此方法都会重新搜索信息;
此方法通常会跟随符号链接,想要对 symlink 使用 stat 请添加参数 follow_symlinks=False,或者使用 lstat() 方法;
windows环境下,建议路径 p 使用反斜杠转义字符 '\',正斜杠会导致无法找到指定文件;
#使用正斜杠路径,找不到指定文件
p = Path('E:/David/Code/python/代码/text.txt')
p.stat()
Traceback (most recent call last):
File "", line 1, in
File "D:Anacondalibpathlib.py", line 1232, in stat
return self._accessor.stat(self)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'E:\David\Code\python\代码\text.txt'
#使用反斜杠路径,返回 os.stat_result 对象
p = Path('E:\David\Code\python\文件\test.txt')
p.stat()
os.stat_result(st_mode=33206, st_ino=281474976737684, st_dev=3692550143, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1650771064, st_mtime=1650771064, st_ctime=1650609120)
os.stat_result 对象各参数含义如下:
| 参数名 | 释义 |
| st_mode | 保护模式/权限模式 |
| st_ino | 索引号 |
| st_dev | 设备名 |
| st_nlink | 硬链接号(被连接数目) |
| st_uid | 所有者的用户ID |
| st_gid | 所有者的组ID |
| st_size | 文件的大小,以位为单位 |
| st_atime | 文件最后访问时间 |
| st_mtime | 文件最后修改时间 |
| st_ctime | 由操作系统报告的“时间”。Windows系统,为文件创建时间;在某些系统(如 Unix)上是最后一次元数据更改的时间。 |
可通过如下方法,访问这些参数
p = Path('E:\David\Code\python\文件\test.txt')
p.stat()
os.stat_result(st_mode=33206, st_ino=281474976737684, st_dev=3692550143, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1650771064, st_mtime=1650771064, st_ctime=1650609120)
p.stat().st_size
0
p.stat().st_mtime
1650771064.9695034
p.stat().st_atime
1650771064.9695034
2. p.lstat()
类似 Path.stat() 方法,但是如果路径指向符号链接,则是返回符号链接,而不是其指向的目标的信息。
p = Path('D:\PycharmProject\测试文件\test.txt')
p.lstat()
os.stat_result(st_mode=33206, st_ino=36028797018982541, st_dev=2789900593, st_nlink=1, st_uid=0, st_gid=0, st_size=47, st_atime=1651151409, st_mtime=1650725749, st_ctime=1650697098)
3. p.group()
返回拥有该文件的用户组,如果文件的 GID 无法在系统数据库中找到,则抛出 KeyError 异常。windows 系统查询失败,显示系统不支持。
p.group()
Traceback (most recent call last):
File "D:Anacondalibpathlib.py", line 473, in group
import grp
File "D:PyCharmpluginspythonhelperspydev_pydev_bundlepydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'grp'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "D:Anacondalibpathlib.py", line 1244, in group
return self._accessor.group(self)
File "D:Anacondalibpathlib.py", line 476, in group
raise NotImplementedError("Path.group() is unsupported on this system")
NotImplementedError: Path.group() is unsupported on this system
4. p.owner()
返回该文件的拥有者(用户名),如果文件的 UID 无法在系统数据库中找到,则抛出 KeyError 异常。 windows 系统查询失败,显示系统不支持。
p.owner()
Traceback (most recent call last):
File "D:Anacondalibpathlib.py", line 466, in owner
import pwd
File "D:PyCharmpluginspythonhelperspydev_pydev_bundlepydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'pwd'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "D:Anacondalibpathlib.py", line 1238, in owner
return self._accessor.owner(self)
File "D:Anacondalibpathlib.py", line 469, in owner
raise NotImplementedError("Path.owner() is unsupported on this system")
NotImplementedError: Path.owner() is unsupported on this system
5. p.readlink()
返回符号链接所指向的路径(即 os.readlink() 的返回值):



