跳到内容

readlines-in-for (FURB129)

派生自 refurb 代码检查工具。

修复总是可用的。

作用

检查在逐行迭代文件时使用readlines()的情况。

为什么这不好?

与其通过调用readlines()来迭代文件中的所有行,不如直接迭代文件对象,这更加方便且性能更高。

示例

with open("file.txt") as fp:
    for line in fp.readlines():
        ...

建议改为

with open("file.txt") as fp:
    for line in fp:
        ...

修复安全性

如果readlines()调用中有注释,此规则的修复被标记为不安全,因为注释可能会被删除。

例如,在以下情况下,修复将被标记为不安全

with open("file.txt") as fp:
    for line in (  # comment
        fp.readlines()  # comment
    ):
        ...

参考