python readline逐行读,怎么判断已到末尾

如题所述

在处理文件读取时,readline() 是一个常用的函数,它按行读取文件。我们经常看到这样的代码示例来遍历文件内容:

filename = raw_input('Enter your file name')
file = open(filename,'r')
done = 0
while not done:
aLine = file.readline()
if(aLine != ''):
print aLine,
else:
done = 1
file.close()

在这个代码片段中,if(aLine != ''): 是关键部分。很多人误以为读取到一个空行就表示文件结束,但实际上,readline() 函数并不会返回一个空行。在每一行末尾,通常都有一个换行符或其他分隔符。因此,即使文件中包含“空白行”,读入的行也不会是空的。这意味着程序不会因为遇到“空白行”而停止。

与 readline() 类似的是 .readlines(),它一次性读取整个文件,返回一个包含所有行的列表。以下是 .readlines() 的一个示例:

fh = open('c:\autoexec.bat')
for line in fh.readlines():
print line

而 .readline() 则每次只读取一行,通常比 .readlines() 更慢。在内存足够的情况下,使用 .readlines() 是更高效的选择。只有当文件太大无法一次性读入内存时,才应使用 .readline()。

总结来说,readline() 和 .readlines() 在文件读取中的应用取决于具体需求和文件大小。了解它们之间的差异有助于编写更高效、更准确的代码。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜