如何仅使用readline()从文件中读取

时间:2012-12-03 04:46:17

标签: python python-3.x

我现在的代码就是这个

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

但我的教授要求

您可以使用readline()。您不能使用read(),readlines()或使用for。

遍历打开的文件

有什么建议吗? 谢谢

2 个答案:

答案 0 :(得分:4)

您可以使用two-argument iter() version

lines = iter(f.readline, "")

如果您需要一个行列表:

lines = list(lines)

答案 1 :(得分:3)

初稿:

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

我确信有更好的方法可以做到这一点,但这确实可以避免使用for,read或使用readlines进行迭代。

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