我有一个很大的文本文件,大小为2GB或更大。当然我不应该使用read()
。
我认为使用readline()
可能是一种方法,但我不知道如何在文件结束时停止循环。
我尝试过这个:
with open('test', 'r') as f:
while True:
try:
f.readline()
except:
break
但是当文件到达结尾时,循环不会停止,并且会继续打印空字符串(
''
)。文件结束指的是由readline
返回的空字符串。请注意,实际上的空行(就像readline
返回的每一行一样)都以行分隔符结尾。
with open('test', 'r') as f:
while True:
line = f.readline()
if line == "":
break
然而,在Python中,文件对象已经是可迭代的。
with open('test', 'r') as f:
for line in f:
print(line.strip())
strip
函数用于去除字符串中的空格,包括换行符,这样就不会出现连续两个换行符。
如果你想要更加简洁的代码:
for l in open("text"): print(l.strip())
编辑: strip
可以从两侧移除所有类型的空格。如果你只想去掉结尾的换行符,可以使用 rstrip("\n")
for line in f.readlines()
print(line)
可能有所帮助。