组织一个凌乱的txt文件

时间:2016-05-02 12:38:30

标签: python python-3.x

我有一个如下所示的txt文件:

0.000E+00 0.000E+00 0.000E+00 0.000E+00
0.000E+00 0.000E+00 0.000E+00 0.000E+00
0.000E+00 0.000E+00 0.000E+00 0.000E+00
0.147E-01-0.158E-01-0.707E-02 0.173E-01
-0.593E-01 0.111E+00 0.153E+00 0.155E+00
0.859E-01-0.664E-01-0.281E+00-0.497E+00
-0.626E+00-0.587E+00-0.347E+00 0.560E-01

这是一个很长的文件,所以我不能手动完成。 正如您所看到的,一些数字之间有空格,而其他数字(负值)则没有空格。 当我试图阅读它时,我找不到合适的方法来分离值。 如果我选择delimiter =' - ',我的脚本会读取它们之间有空格的值作为一个值。 如果我选择delimiter ='',我的脚本对使用minos执行的值执行相同的操作。 有没有好好阅读文本并能够很好地分离这些值?

我的剧本:

inf=open("data","r")
for columns in ( raw.strip().split() for raw in inf ):
    print (columns[0])

2 个答案:

答案 0 :(得分:7)

这不是最佳解决方案,但请尝试以下方法:

normalized_file_content = file_content.replace('-', ' -').replace('E -', 'E-')

这会在负数之前添加空格,但不会在E-符号之间添加空格。

答案 1 :(得分:0)

我建议使用正则表达式

for row in data:
    print map(float, re.findall('-?\d\.\d{3}E[+-]\d{2}', row)