我需要多次遍历几个文本文件的行。 目前这已经完成了多个
with open("file.txt") as f:
for line in f:
# do something
虽然性能还不是问题,但我想只将文件读入io.StringIO
缓冲区一次,然后再使用它。
Python io
docs:
这是一个工作片段
import io
sio = io.StringIO( open("file.txt").read() )
for line in sio:
print(line)
sio.seek(0)
for line in sio:
print(line)
sio.close()
或将其包装在with声明中context manager
import io
with io.StringIO( open("file.txt").read() ) as sio:
for line in sio:
print(line)
sio.seek(0)
for line in sio:
print(line)
#sio.close()
问题
close()
)?答案 0 :(得分:0)
你正在做的事情已经是正确的方法。引用这个答案:How to read large file, line by line in python
with
语句处理打开和关闭文件,包括是否在内部块中引发异常。for line in f
将文件对象f
视为可迭代,它自动使用缓冲的IO和内存管理,因此您不必担心大文件。