我需要对几个文本文件的行进行多次迭代。 目前这是使用多个
with open("file.txt") as f:
for line in f:
# do something
虽然性能目前还不是问题,但我希望只将文件一次性读入到
io.StringIO
缓冲区中,然后再进行操作。Python
io
文档:
这是一个可行的代码片段。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()
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()
它)? - 我在哪里可以阅读更多关于Python的io缓冲的信息(我认为我读到过Python通过自动缓冲来优化多个文件访问的内容)?