【发布时间】:2019-11-04 18:43:12
【问题描述】:
我有数据需要读取并使用 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”循环运行
【问题讨论】:
标签: python python-3.x loops file