我需要读取一个包含逗号字段的CSV文件,因此我引用了包含逗号的字段,例如:
1, "text1,text2", "text3, text4", a, b, c
但是当我尝试用Python读取文件时,我得到的字段用逗号分隔,如下所示:
row[0] = 1
row[1] = text1
row[2] = text2
row[3] = text3
row[4] = text4
row[5] = a
row[6] = b
row[7] = c
我正在使用以下代码阅读CSV文件:
info = csv.reader(open('./info.csv'))
for row in info :
print row[0] + " * " + row[1] ...
是否可以读取包含逗号的双引号字段?
答案 0 :(得分:30)
Python csv
模块实际上支持引用字段,即使默认情况下也是如此。你的问题是Python默认不跳过空格,所以你需要使用skipinitialspace=True
。
>>> s = StringIO.StringIO('1, "text1,text2", "text3, text4", a, b, c')
>>> list(csv.reader(s, skipinitialspace=True))
[['1', 'text1,text2', 'text3, text4', 'a', 'b', 'c']]