我有一个如下所示的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])
答案 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)