我有一个看起来像的文件
12 MG -5.000000000000E-01 -5.000000000000E-01 0.000000000000E+00
16 S 1.558454815345E-01 1.558454815345E-01 2.500000000000E-01
8 O 2.189546044408E-01 -1.271822846411E-01 4.012978695812E-01
我想从行的前面分离出数字,输出为
MG -5.000000000000E-01 -5.000000000000E-01 0.000000000000E+00
S 1.558454815345E-01 1.558454815345E-01 2.500000000000E-01
O 2.189546044408E-01 -1.271822846411E-01 4.012978695812E-01
我有这个
for line in file:
head, sep, tail = line.partition('wildcard')
print tail
我应该为通配符输入什么?
请您参考如下方法:
您的格式看起来像固定列格式,其中每列的宽度都是固定的。
如果是这样,请改用切片:
for line in file:
print line[4:]
切掉前 4 个字符。
或者,使用 str.split() 的 None 参数在空白处拆分一次:
for line in file:
tail = line.split(None, 1)[-1]
print tail
str.split(None) 跳过 字符串开头的空格,并在第一列之后的第一个空格字符序列处拆分。 [-1] 取最后一个元素;即使线上只有一列,您也会得到一个结果。
演示:
>>> line = ' 16 S 1.558454815345E-01 1.558454815345E-01 2.500000000000E-01\n'
>>> line.split(None, 1)
['16', 'S 1.558454815345E-01 1.558454815345E-01 2.500000000000E-01\n']
