53

我有一些如下所示的输入:

A,B,C,"D12121",E,F,G,H,"I9,I8",J,K

逗号分隔的值可以是任何顺序。我想用逗号分隔字符串;但是,在双引号内的情况下,我需要它既忽略逗号又去掉引号(如果可能)。所以基本上,输出将是这个字符串列表:

['A', 'B', 'C', 'D12121', 'E', 'F', 'G', 'H', 'I9,I8', 'J', 'K']

我看过其他一些答案,我认为正则表达式是最好的,但我很难想出它们。

4

1 回答 1

73

拉斯是对的;这是一个逗号分隔的值文件,所以你应该使用csvmodule。一个简单的例子:

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']
于 2011-11-09T18:52:08.403 回答