跳到内容

os-readlink (PTH115)

添加于 v0.0.231 · 相关问题 · 查看源码

派生自 flake8-use-pathlib linter。

有时提供修复。

作用

检查对 os.readlink 的使用。

为什么这不好?

os 模块提供的底层 API 相比,pathlib 为路径操作提供了更高级的 API。在可能的情况下,使用 Path 对象的方法(例如 Path.readlink())比使用 os 模块的对应函数(例如 os.readlink())更能提高代码的可读性。

示例

import os

os.readlink(file_name)

建议改为

from pathlib import Path

Path(file_name).readlink()

已知问题

虽然使用 pathlib 可以提高代码的可读性和类型安全性,但与直接使用字符串的较低级替代方案相比,它的性能可能会降低,尤其是在旧版本的 Python 上。

修复安全性

如果替换操作会删除附加在原始表达式上的注释,则此规则的修复程序被标记为不安全。此外,当返回值被使用时,修复程序也会被标记为不安全,因为返回类型会从 strbytes (AnyStr) 变更为 Path 对象。

参考