我有一些来自某些数值计算的输出文件。输出文件看起来像为每个文件块运行不同的代码
AA AB AC广告AE┐
BA BB BC BD是┘5串
0.5 1.2 0.3 AAA BBB┐
0.2 8.2 3.3 CCC DDD┃3浮子+的块的块2串
0.5 1.3 0.6 EEE GGG┘
0.11 0.444 0.333 0.777 0.88┐
0.41 0.544 0.313 0.797 0.01┃
0.11 0.447 0.333 0.777 0.88 6┃浮子座
0.17 0.444 0.333 0.787 0.03┃
0.11 0.444 0.333 0.777 0.88┘
,这意味着,它形成一些图案的块。我想要做的是阅读这个文件,并分别为每个块做一些东西。
对于最简单的方法,我写的代码像
file = open("myfile", "r")
for i, line in enumerate(file):
if i <= 1:
# do some stuff 1.
elif 1< i <=4 :
# do some stuff 2
elif 4 < i :
# do some stuff 3
file.close()
和手工指定的行号,每当我运行程序。问题是输出文件的行号因文件而异(但模式相同),并且在我通过眼睛手动检查之前,我不知道每个块会有多长。处理这个问题的有效方法是什么?
每个文件的大小约为100〜1000MB,每个文件大小约为500000〜5000000行。
说你的模式是仅基于float和字符串。从第一行开始,保持它们两个的计数并且直到下一行也具有相同的计数,否则继续到代码的下一个块。这有帮助吗? – alDiablo
这三种类型的块*总是分别是2,3和6行还是仅仅是一个例子? – timgeb
@timgeb该行不同。某些文件有2,3,6行,而其他文件有2,5,16行等等。 – user42298