我的文本文件目前包含以下格式的数据:
------------NEW CALCULATION-----------
1.09532773E-02 9.93E-02
3.76554509E-03 9.93E-02
7.53080333E-03 9.93E-02
1.12954900E-02 9.93E-02
1.50593193E-02 9.92E-02
1.88220125E-02 9.92E-02
2.25832891E-02 9.92E-02
------------NEW CALCULATION-----------
9.71343145E-02 9.84E-02
0.100812949 9.84E-02
0.104485862 9.83E-02
0.108152986 9.83E-02
0.111814260 9.82E-02
所以每个新计算的开头都有一个“---- NEW CALCULATION ----”消息,然后数字分为两列。 目前,我使用excel将所有数字分成两列,但我找不到在自己的列集中分隔每个计算的方法。例如,我希望上面的数据看起来像(分成四列):
1.09532773E-02 9.93E-02 9.71343145E-02 9.84E-02
3.76554509E-03 9.93E-02 0.100812949 9.84E-02
7.53080333E-03 9.93E-02 0.104485862 9.83E-02
1.12954900E-02 9.93E-02 0.108152986 9.83E-02
1.50593193E-02 9.92E-02 0.111814260 9.82E-02
1.88220125E-02 9.92E-02
2.25832891E-02 9.92E-02
请注意,这两列没有相同数量的数据点。
有人请帮忙!
答案 0 :(得分:1)
特别快速和脏的python脚本:
import itertools
so = "\t" # separator for output
infile = "infile" # file input
outfile = "outfile" # file output
s = open(infile).read()
sep = "------------NEW CALCULATION-----------\n"
s = [i.strip().split('\n') for i in s.strip(sep).split(sep)]
s = [[j.strip().split() for j in i] for i in s]
s = list(map(list,list(itertools.zip_longest(*s,fillvalue=['\t\t\t']))))
o = open("outfile","w")
for i in [so.join([i for j in s2 for i in j]) for s2 in s]:
o.write(i+"\n")