Подтвердить что ты не робот

Чтение файла CSV с запятой в полях в Python

Мне нужно прочитать 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] ...

Можно ли читать двойные кавычки, содержащие запятую?

4b9b3361

Ответ 1

Модуль 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']]