'12345 abcd 11/09/2012 星期二 xd'如何能将该行创建为长度为5的list

2012-09-10 21:10:15 +08:00
 durden
12345 abcd 11/09/2012 星期二 xd

我希望将该行数(存于data.txt文件中)创建为如下这个list
[12345, abcd, 11/09/2012, 星期二, xd]

但我用下面代码得到的却是:[12345, abcd 11/09/2012, 星期二, , , xd]

f = open('data.txt', 'r')
s = f.readline().split(' ')
for i in s:
print i
3128 次点击
所在节点    Python
5 条回复
sutar
2012-09-10 21:16:59 +08:00
>>> s= u'12345 abcd 11/09/2012 星期二 xd'
>>> s.split()
[u'12345', u'abcd', u'11/09/2012', u'\u661f\u671f\u4e8c', u'xd']
Sin
2012-09-10 21:17:03 +08:00
查查那个 data.txt 看看有没多或者少空格……
durden
2012-09-10 21:17:23 +08:00
补充一下,直接写在帖子里面看不出来,原数据为:


12345[空格]abcd[tab]11/09/2012[空格]星期二[空格][空格]xd

而我的split条件是[' ']
导致了'abcd 11/09/2012'成了一个元素,而后面的两个空格也分别成了元素
durden
2012-09-10 21:19:30 +08:00
@sutar 谢谢,原来用split(),而非split(' ')就行了...
ccp0101
2012-09-10 21:50:02 +08:00
要更多控制的话用regex.

>>> import re
>>> text = "aa bb\t c"
>>> re.split(r'[\s\t]+', text)
['aa', 'bb', 'c']

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/47394

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX