Как быстро разобрать список строк

Если я хочу разбить список слов, разделенных символом разделителя, я могу использовать

>>> 'abc,foo,bar'.split(',')
['abc', 'foo', 'bar']

Но как легко и быстро сделать то же самое, если я также хочу обрабатывать кавычки, которые могут содержать символ разделителя?

In: 'abc,"a string, with a comma","another, one"'
Out: ['abc', 'a string, with a comma', 'another, one']

Связанный вопрос: Как я могу разобрать строку с разделителями-запятыми в список (оговорка)?

Ответ 1

import csv

input = ['abc,"a string, with a comma","another, one"']
parser = csv.reader(input)

for fields in parser:
  for i,f in enumerate(fields):
    print i,f    # in Python 3 and up, print is a function; use: print(i,f)

Результат:

0 abc
1 a string, with a comma
2 another, one

Ответ 2

CSV-модуль должен быть в состоянии сделать это для вас