from csv import reader
# test
infile = ['A,B,C,"D12121",E,F,G,H,"I9,I8",J,K']
# real is probably like
# infile = open('filename', 'r')
# or use 'with open(...) as infile:' and indent the rest
for line in reader(infile):
print line
# for the test input, prints
# ['A', 'B', 'C', 'D12121', 'E', 'F', 'G', 'H', 'I9,I8', 'J', 'K']
2条答案
按热度按时间v7pvogib1#
Lasse是对的;它是一个逗号分隔的值文件,所以你应该使用
csv
module。一个简单的例子:sqserrrh2#
如果你正在寻找一个基于正则表达式的解决方案,一个简单的方法是用逗号分隔(
,
)或用引号分隔("(.*?)"
);然后过滤掉空值。另一种方法是使用一种模式调用
re.findall()
,其中捕获引号之间的字符("(.*?)"
)或非逗号字符(([^,]+)
),它创建一个2元组列表,其中一个值是空字符串;所以只要连接这些元组就可以了。也就是说,我相信标准的
csv
库是这里最好的解决方案。注意,csv.reader
需要一个字符串列表,所以如果你想拆分一个字符串,请将其 Package 在一个函数中。