在Python中的字段中使用逗号读取CSV文件

时间:2011-11-29 13:53:31

标签: python csv

我需要读取一个包含逗号字段的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] ...

是否可以读取包含逗号的双引号字段?

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']]