如果你可以帮助一个python初学者,那就太好了,那就是阅读!
我想分析一个像这样格式化的文本文档,并且有大量这样的行:
000001 A040C015_130223_R1WV V C 11:37:48:22 11:38:29:18 10:00:53:00 10:01:33:20
每个字符串之间的都有空格。 所以我做了以下事情:
#writing data into list
datalist = []
filedata = open(inputfile, 'r')
for line in filedata:
line = line.strip('\n\t\r')
datalist.append(line)
filedata.close()
#splitting up List by whitespace and creating new List
newList = []
for i in datalist:
newList.append(i.split(' '))
print newList[0:]
#parsing list with regex
regCompiled = re.compile('^[A-Z][0-9]{3,3}[C][0-9]{3,3}[_][0-9]{6,6}[_][A-Z][0-9]{2,2}[A-Z].*');
for content in newList:
checkMatch = re.match(regCompiled, content);
if checkMatch:
print ("Found:"), content
else:
print ("NO Match")
我遇到的第一个问题是,它似乎使每一行都有一个带有空('')项的列表 对于拆分后的每个空格,然后由于拆分功能,它似乎是列表中的列表。
我试过
filter(None, newList)
但由于空项目,('')项目仍然存在并且正则表达式出错。 毕竟我只想提取包含A040C015_etc的字符串。
完整的文本列表在这里: Link to full Text Document
非常感谢您的帮助...... 赖
答案 0 :(得分:1)
尝试使用split()
代替split(" ")
。应该照顾额外的空间:
>>> i = "x X"
>>> i.split()
['x', 'X']
>>> i.split(" ")
['x', '', 'X']