一次读取一个文件,一个块

时间:2017-02-17 04:31:32

标签: python file

我有一个非常大的文件格式如下:

(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循环。

注意:由于每个块的长度可变,因此也无法一次读取一定数量的行。

1 个答案:

答案 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)