我有一行(来自csv),如下所示:
line = 'M1,After.Life,Agnieszka Wojtowicz-Vosloo,Agnieszka Wojtowicz-Vosloo,"Drama, Thriller",2009/10/2/,80'
当我print line.split(',')
时,我得到:
['M1', 'After.Life', 'Agnieszka Wojtowicz-Vosloo', 'Agnieszka Wojtowicz-Vosloo', '"Drama', ' Thriller"', '2009/10/2/', '80']
这是不受欢迎的,因为它也分裂了“戏剧,惊悚片”。换句话说,我想要的结果是:
['M1', 'After.Life', 'Agnieszka Wojtowicz-Vosloo', 'Agnieszka Wojtowicz-Vosloo', '"Drama Thriller"', '2009/10/2/', '80']
任何简单方法的想法?感谢
答案 0 :(得分:7)
您改用csv
module。您有CSV格式,该模块知道如何正确处理引用值。
import csv
with open(somefilename, 'rb') as inputfile:
reader = csv.reader(inputfile)
for row in reader:
# row is a list of string values found on each line, ready split,
# with qouted values preserved.
示例行的快速演示:
>>> import csv
>>> inputfile=['M1,After.Life,Agnieszka Wojtowicz-Vosloo,Agnieszka Wojtowicz-Vosloo,"Drama, Thriller",2009/10/2/,80\n']
>>> list(csv.reader(inputfile))
[['M1', 'After.Life', 'Agnieszka Wojtowicz-Vosloo', 'Agnieszka Wojtowicz-Vosloo', 'Drama, Thriller', '2009/10/2/', '80']]
请注意,引号已被删除,但逗号仍然是值的一部分。