Python 字符串无公共分隔符分割
我对Python还比较陌生。我使用的一个外部模拟软件会给我生成报告,报告中的数据格式如下:
1 29 Jan 2013 07:33:19.273 29 Jan 2013 09:58:10.460 8691.186
我想把上面的数据分成四个字符串,分别是:
'1', '29 Jan 2013 07:33:19.273', '29 Jan 2013 09:58:10.460', '8691.186'
我不能用str.split,因为这样会把日期分成多个字符串。看起来在数字1和第一个日期之间,以及第一个和第二个日期之间,有四个空格。我不确定这些是四个空格还是制表符(tab)。
用'\t'
作为分隔符进行分割并没有什么效果。如果我指定' '
(四个空格)作为分隔符,我能得到前三个字符串。最后一个字符串却是一个空字符串,并且前面还有空格。在第二个日期和数字之间有10个空格。
如果有任何建议来处理这个问题,我会非常感激!
谢谢!
2 个回答
0
如果数据是固定宽度的,你可以在字符串中使用字符地址来定位。
n=str[0]
d1=str[2:26]
d2=str[27:51]
l=str[52:]
但是,如果“Jan 02”显示为“Jan 2”,那么这种方法可能就不管用了,因为字符串的宽度可能会变化。
9
你可以用一个简单的正则表达式来分割多个空格:
import re
multispace = re.compile(r'\s{2,}') # 2 or more whitespace characters
fields = multispace.split(inputline)
示例:
>>> import re
>>> multispace = re.compile(r'\s{2,}') # 2 or more whitespace characters
>>> multispace.split('1 29 Jan 2013 07:33:19.273 29 Jan 2013 09:58:10.460 8691.186')
['1', '29 Jan 2013 07:33:19.273', '29 Jan 2013 09:58:10.460', '8691.186']