2008-12-01 19 views
16

Si quiero dividir una lista de palabras separadas por un carácter delimitador, puedo usarcómo analizar rápidamente una lista de cadenas

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

Pero cómo hacer fácil y rápidamente lo mismo si yo también quiero manejar cadenas entre comillas que pueden contener el carácter delimitador?

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

pregunta relacionada: How can i parse a comma delimited string into a list (caveat)?

Respuesta

36
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) 

Resultado:

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

uno de los buenos. Uso inteligente del módulo :-) –

Cuestiones relacionadas