我有一个非常大的文件格式如下:
(mydelimiter)
line
line
(mydelimiter)
line
line
(mydelimiter)
由于文件太大,我无法一次将其全部读入内存。所以我想一次读取“(mydelimiter)”之间的每个块,对它执行一些操作,然后读入下一个块。
这是我到目前为止的代码:
with open(infile,'r') as f:
chunk = []
for line in f:
chunk.append(line)
现在,我不知道如何告诉python“继续添加行,直到你用'(mydelimiter)'打到另一行”,然后在下一次迭代中保存它停止的行abd从那里开始for循环。
注意:由于每个块的长度可变,因此也无法一次读取一定数量的行。
答案 0 :(得分:1)
with open(infile,'r') as f:
chunk = []
for line in f:
if line == 'my delimiter':
call_something(chunk)
chunk=[]
else :
chunk.append(line)