¿Cómo puedo dividir una línea por comas, pero ignorar comas entre comillas Python

Posible duplicado:
¿Cómo leer una línea CSV con “?

He visto una serie de preguntas relacionadas, pero ninguna ha abordado directamente lo que estoy tratando de hacer. Estoy leyendo en líneas de texto de un archivo CSV.

Todos los elementos están entre comillas y algunos tienen comas adicionales dentro de las comillas. Me gustaría dividir la línea a lo largo de comas, pero ignorar las comas entre comillas. ¿Hay alguna manera de hacer esto dentro de Python que no requiera un número de declaraciones de expresiones regulares?

Un ejemplo es:

"114111","Planes,Trains,and Automobiles","50","BOOK" 

que me gustaría analizar en 4 variables separadas de valores:

 "114111" "Planes,Trains,and Automobiles" "50" "Book" 

¿Hay una opción simple en line.split() que me estoy perdiendo?

No intentes reinventar la rueda.

Si desea leer líneas de un archivo CSV, use el módulo csv de Python de la biblioteca estándar.

Ejemplo:

 > cat test.py import csv with open('some.csv') as f: reader = csv.reader(f) for row in reader: print(row) > cat some.csv "114111","Planes,Trains,and Automobiles","50","BOOK" > python test.py ['114111', 'Planes,Trains,and Automobiles', '50', 'BOOK'] [] 

¡Trabajo hecho!

Probablemente pueda dividirse en “,” que es “[quote] [coma] [quote]”

la otra opción es crear un carácter de escape, por lo tanto, si alguien quiere incrustar una coma en la cadena que hacen \ c y si quieren una barra invertida, lo hacen \\. Luego tienes que dividir la cadena, luego quitarla antes de procesarla.