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)