os-stat (PTH116)
派生自 flake8-use-pathlib linter。
作用
检查 `os.stat` 的使用情况。
为什么这不好?
与 `os` 提供的较低级 API 相比,`pathlib` 为路径操作提供了一个高级 API。 如果可能,使用 `Path` 对象方法(例如 `Path.stat()`)可以提高可读性,胜过 `os` 模块的对应方法(例如,`os.path.stat()`)。
示例
import os
from pwd import getpwuid
from grp import getgrgid
stat = os.stat(file_name)
owner_name = getpwuid(stat.st_uid).pw_name
group_name = getgrgid(stat.st_gid).gr_name
建议改为
from pathlib import Path
file_path = Path(file_name)
stat = file_path.stat()
owner_name = file_path.owner()
group_name = file_path.group()
已知问题
虽然使用 pathlib
可以提高代码的可读性和类型安全性,但与直接使用字符串的较低级替代方案相比,它的性能可能会降低,尤其是在旧版本的 Python 上。