Skip to main content
 首页 » 编程设计

python之在python中用通配符分隔字符串

2025年05月04日26小虾米

我有一个看起来像的文件

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