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

Dav*_*vid 25 python csv

我需要读取一个包含逗号字段的CSV文件,因此我引用了包含逗号的字段,例如:

1, "text1,text2", "text3, text4", a, b, c
Run Code Online (Sandbox Code Playgroud)

但是当我尝试用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
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码阅读CSV文件:

info = csv.reader(open('./info.csv'))  
for row in info :
    print row[0] + " * " + row[1] ...
Run Code Online (Sandbox Code Playgroud)

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

Sve*_*ach 32

csv即使默认情况下,Python 模块实际上也支持引用字段.你的问题是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']]
Run Code Online (Sandbox Code Playgroud)

  • `csv.Sniffer().sniff(s).__ dict__`也表示它:`{'__ doc__':无,'__ module _':'csv','_ name':'sniffed','delimiter':',' ,'doublequote':错误,'lineterminator':'\ r \n','quotechar':''','引用':0,'skipinitialspace':True} (5认同)