[Python-es] Busqueda cadenas NO coincidentes
Arnau Sanchez
pyarnau en gmail.com
Mar Mar 23 15:37:03 CET 2010
On 23/03/10 14:45, Manuel Enrique González Ramírez wrote:
> 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.
Python sería un lenguaje "de scripting" muy, muy triste, si para conseguir esto
necesitáramos tal cantidad de código. Sin cubrir quizá todos los detalles,
podrías partir de algo así:
output = (line for line in open("archivo1.txt")
if line.strip() not in open("archivo2.xml").read())
open("diferencias.txt", "a+").writelines(output)
Por cierto, añadir datos a archivos (operación no idempotente) suele ser una
mala idea, yo usaría el modo "w" y si hay diferentes fuentes las uniría después.
Conceptualmente no sé si tiene mucho sentido mirar si una palabra está o no en
un formato estructurado como XML, pero bueno, supongo que eso ya lo tienes
controlado.
Más información sobre la lista de distribución Python-es