【发布时间】:2020-02-17 20:24:51
【问题描述】:
我正在尝试编写代码来读取 Fresco 文件并绘制结果。 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...
我想在每个“END”之后生成一个新文件来分别分析数据。我尝试了一些针对其他答案的解决方案,例如
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 相当陌生,因此非常感谢任何帮助。
【问题讨论】:
-
你试过
infile.read().split("END")吗? -
@Filip 如果文件很大,这将不起作用
-
我们如何区分
some text...行和theta sigma标题行?我们是否知道标题在整个部分中始终是相同的theta sigma,还是可以(任意)更改?是否保证some text...行不包含数字? (顺便说一句,用#为某些文本行添加前缀会很有用,以使它们成为cmets,这将被忽略。) -
但这不是我需要的。 - 为什么?它有什么问题?
-
"这不是我需要的" 你的代码和你想要的有什么不同?
标签: python