我正试图写一个代码来读取壁画文件并绘制结果。Fresco制作了一个大文件,看起来像这样
theta sigma
1 0.1
2 0.1
3 0.2
...
END
some text...
theta sigma
1 0.3
2 0.2
...
END
more data...
我想在每次“结束”后生成一个新文件,分别分析数据。我尝试了其他答案的一些解决方案,比如
with open('fort.16', 'r') as infile, open('output_fort.16', 'w') as outfile:
copy= False
for line in infile:
if line.strip() == '# legend':
copy = True
continue
elif line.strip()=='End':
copy = False
elif copy:
outfile.write(line)
但这不是我需要的。 我是python新手,因此非常感谢您的帮助
这是一个,每次都创建一个新文件。文件名是file,并且是找到“END”行的位置的索引。:)
我用嵌套生成器解决了这个问题:
fresco_iter
方法返回一个可以循环的生成器。它为theta sigma
对的每个部分返回1个生成器因此,为了利用这一点,您可以创建自己的嵌套循环来处理嵌套的生成器
将输出
这种策略一次只能在内存中保存一行输入文件,因此适用于任何大小的文件,即使在最小的设备上。。。因为发电机很棒
所以一路走下去。。。将输出分离为单个文件:
将输出刚好数字以分隔名为
fort.16.part-0000
和fort.16.part-0001
的文件我希望这有帮助,快乐编码
相关问题 更多 >
编程相关推荐