我有一个大文本文件,它是2GB或更多.我当然不应该使用read().
我认为使用readline()可能是一种方式,但我不知道如何在文件的末尾停止循环.
我试过这个:
with open('test', 'r') as f:
while True:
try:
f.readline()
except:
break
Run Code Online (Sandbox Code Playgroud)
但是当文件结束时,循环不会停止并且将保持打印空字符串('').
文件结束定义为返回的空字符串readline.请注意一个实际的空行,就像readline行分隔符返回的每一行一样.
with open('test', 'r') as f:
while True:
line = f.readline()
if line == "":
break
Run Code Online (Sandbox Code Playgroud)
但话说回来,python中的文件对象已经可以迭代了.
with open('test', 'r') as f:
for line in f:
print(line.strip())
Run Code Online (Sandbox Code Playgroud)
strip 删除空格,包括换行符,因此不打印双换行符.
如果你不喜欢它安全,并希望尽可能少的代码:
for l in open("text"): print(l.strip())
Run Code Online (Sandbox Code Playgroud)
编辑:strip从两侧删除所有类型的空格.如果你真的只想摆脱结尾的换行符,你可以使用rstrip("\n")
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |