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

python csv

19239 просмотра

1 ответ

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

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

Автор: David Источник Размещён: 12.11.2019 09:22

Ответы (1)


32 плюса

Решение

Модуль 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']]
Автор: Sven Marnach Размещён: 29.11.2011 01:58
Вопросы из категории :
32x32