如何格式化此数据?

时间:2015-02-01 17:38:24

标签: excel text formatting

我的文本文件目前包含以下格式的数据:

------------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

请注意,这两列没有相同数量的数据点。

有人请帮忙!

1 个答案:

答案 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")