我是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和第一个日期之间以及第一个和第二个日期之间似乎有四个空格。我不知道这是四个白色空格还是标签。
在分割时使用'\t'
作为分隔符并没有太大作用。如果我指定' '
(4个空格)作为分隔符,我会得到前三个字符串。然后我还得到一个空字符串和最后一个字符串中的前导空格。第二个日期和数字之间有10个空格。
任何有关如何处理此问题的建议都会有所帮助!
谢谢!
答案 0 :(得分: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']
答案 1 :(得分:0)
如果数据是固定宽度,则可以在字符串
中使用字符寻址n=str[0]
d1=str[2:26]
d2=str[27:51]
l=str[52:]
但是,如果Jan 02显示为1月2日,这可能不起作用,因为字符串的宽度可能是可变的