> 
> 
> 
> asumí que si que podías controlar la creación de la cadena original y
> por lo tanto usar un mecanismo de serialización robusto, probado y
> fácil de usar. Pero si ese no es el caso yo me lo plantearía de forma
> diferente según dos supuestos:
> 
> Supuesto 1: Estas intercambiando datos con un proveedor bastante
> cutre. Cambia de trabajo 

Vale. Pero solo si luego me contratas tu.
;)


> 
> Supuesto 2: Estas haciendo un scraper y el proveedor de datos ni
> siquiera sabe que lo es. Posiblemente las regex (modulo re) sean la
> mejor opción para casi todos tus problemas. De fallarte eso puedes
> mirar alguna herramienta para hacer parsers, pero eso ya sería para
> gramáticas complejas y recursivas.
> 
> re.match("(\w+,\w+),(\w+)", cadena).groups()
> 
> Posiblemente con el ejemplo anterior tengas solucionado tu problema.
> 

Gracias a todos por vuestro tiempo e ideas.
El problema no es facil, la verdad.
Yo no controlo la creacion de la cadena original. Viene de un fichero de 
configuracion que yo analizo con ConfigParser. Soluciones tipo usar listas [], 
serializar, split() con indice,... no valen. Yo no puedo saber a priori lo que 
los usuarios van a poner en los ficheros de conf.

Cambiar de separador es una posibilidad, pero tiene el inconveniente de que 
entonces tengo que pedirle a todos los usuarios que cambien sus config files. 
Ya pase por esa experiencia y no fue agradable. Aprendi a molestar a los 
usuarios lo menos posible.

La solucion menos intrusiva era que cuando un usuario necesite que la coma sea 
literal la marcase de alguna forma. Pero entonces me vi atrapado en un problema 
recursivo.

En fin, lo dicho. Muchas gracias a todos por vuestras sugerencias.

Saludos,
Jose
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a