0

我现在的代码是这个

f = open(SINGLE_FILENAME)
lines = [i for i in f.readlines()]

但我的教授要求

您可以使用 readline()。您不能使用 read()、readlines() 或使用 for 遍历打开的文件。

有什么建议么?谢谢

4

2 回答 2

4

您可以使用两个参数iter()版本

lines = iter(f.readline, "")

如果您需要行列表:

lines = list(lines)
于 2012-12-03T05:13:00.460 回答
3

第一稿:

lines = []
with open(SINGLE_FILENAME) as f:
    while True:
        line = f.readline()
        if line:
            lines.append(line)
        else:
            break

我相当肯定有更好的方法来做到这一点,但这确实避免了使用 for、使用 read 或使用 readlines 进行迭代。

您可以编写一个生成器函数来继续调用readline(),直到文件为空,但这似乎并不是一个很大的改进。

于 2012-12-03T04:58:32.797 回答