我有一些数据需要使用python代码读取和提取特定的块,但是文件的长度可能是数千万行,而且太大而无法存储在内存中,所以我只想提取我实际需要的数据进行分析。
文件格式如下:
4 # Number of lines per block
0 # Start of block 0
A line of data
A line of data
A line of data
A line of data
1 # Start of block 1
A line of data
A line of data
...
我遇到的问题是,一旦我找到并读取了所需的特定块并放入列表中,我的代码就会继续读取和添加数据,直到文件的末尾而不是该特定块的末尾。
这是我到目前为止所拥有的:
required_block = 5
ilepath = file.txt
data = []
with open(filepath,'r') as f:
block_length = int(f.readline())
for line in f:
block = int(line)
if block != required_block:
for _ in range(block_length)
next(f)
else:
break
for line in f:
data.append(line)
如果我尝试将范围添加到最后一个“ for”循环中,它将反复读取当前行。
我要去哪里错了?
编辑:为澄清起见,我只希望最后一个“ for”循环运行