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

Python 如何仅使用readline()读取文件,python,python-3.x,Python,Python 3.x,我现在掌握的代码是 f = open(SINGLE_FILENAME) lines = [i for i in f.readlines()] 但我的教授要求 您可以使用readline()。您不能使用read()、readlines()或使用for迭代打开的文件 有什么建议吗? 谢谢初稿: lines = [] with open(SINGLE_FILENAME) as f: while True: line = f.readline() if line

我现在掌握的代码是

f = open(SINGLE_FILENAME)
lines = [i for i in f.readlines()]
但我的教授要求

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

有什么建议吗? 谢谢

初稿:

lines = []
with open(SINGLE_FILENAME) as f:
    while True:
        line = f.readline()
        if line:
            lines.append(line)
        else:
            break
我觉得有一种更好的方法可以做到这一点,但这确实避免了使用for、read或readlines进行迭代

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

您可以使用:

如果需要行列表:

lines = list(lines)

注意:
lines=f.readlines()
也会这样做(生成一个行列表)。惰性版本:
lines=f
(文件本身就是行的迭代器)。你在哪里学过
行=[i for i in f.readlines()]
(使用它没有意义)?我已经看过好几次这样的代码,我感兴趣的是它的起源或背后的逻辑;巧合的是,这种情况是你会发现教授无能的最好的简单证明之一。
lines = list(lines)