[Python-es] Busqueda cadenas NO coincidentes

lasizoillo lasizoillo en gmail.com
Mar Mar 23 15:33:47 CET 2010


El día 23 de marzo de 2010 14:45, Manuel Enrique González Ramírez
<maengora en gmail.com> escribió:
> Hola amig en s de la lista.
>
> Tengo este pequeño inconveniente.
>
> Tengo dos archivos (archivo1.txt y archivo2.xml).  Archivo1 contiene una
> lista de datos en la siguiente forma:
>
> primerdato
> segundodato
> tercerdato
> .
> .
> .
> etc
>
>
> Archivo2.txt es un archivo en formato XML que tiene la estructura propia de
> un archivo de este tipo, completamente diferente al archivo1.txt
>
> Lo que necesito que haga mi programa es:
> 1. Leer linea a linea archivo1.txt
> 2. Cada vez que se lea una línea de archivo1.txt busque si esa palabra se
> encuentra en archivo2.xml
> 3. Si la palabra NO se encuentra en archivo2.xml se debe crear un archivo
> nuevo (diferencias.txt) que agregue esa palabra que no encontro en
> archivo2.xml.  Si el archivo diferencias.tx ya existe entonces que agregue
> una linea nueva al archivo diferencias.txt con la palabra en cuestion.
>

¿Es abordable meter todas las palabras de archivo2.xml en un set? Si
es así hazlo y verás que rapidito vas. Si no es abordable meterlo en
memoria, puedes probar a usar una berkeleydb.

http://docs.python.org/library/sets.html#module-sets
http://docs.python.org/library/bsddb.html#module-bsddb

Los dos modulos han sido marcados como "deprecated". El primero viene
incluido como tipo del sistema y para el segundo puedes usar las
librerias de jcea (otro listero).

http://www.jcea.es/programacion/pybsddb.htm

Así que no preocuparse por quedarse sin soporte ;-)

Un saludo:

Javi



Más información sobre la lista de distribución Python-es