Hola a...@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.

Lo que
tengo:
Tengo un prototipo que inicialmente me funciono con dos archivos de texto
peque�o (en pruebas) y misma estructura, pero al ponerlo en producci�n
este no me funciona de la forma deseada ya que me copia todos los registros que 
contiene
el archivo1.txt.

Este es el codigo para aquel/aquella que me pueda
colaborar,� y de una vez MuuuuChassss Gracias

#-*- coding: cp1252 -*-
"""Abro el primer archivo para
leer la cantidad de
l�neas
que posee """
f1 =
open("archivo1.txt","r")
a = 0
for i in f1.readlines():
��� a += 1
cantidad = a
f1.close()



contador = 0
while contador ��� #Abro el primer archivo para la
lectura
��� f1 = open("archivo1.txt","r")
��� for linea in f1:
��� #Evito que se muestren los
saltos de l�nea
��� if linea[-1]=='\n': 
����������� linea =
linea[:-1]
��� buscar = linea #Asigno cada l�nea a la
variable buscar

��� #Abro el segundo archivo donde se
buscar� la variable
��� f2 =
open("archivo2.xml","r")
������� archivo2 = f2.read() #Leo Completamente el
archivo
��� #Lee la variable y la busca
��� if
archivo2.find(buscar)>=0:
������� print
buscar+' OK '
��� else:
������� f3 =
open("diferencias.txt","a")
�����������
f3.write(buscar+"\n") #Si no encuentra la variable pone Fail
������� f3.close()#Cierro el archivo que se crea

��� contador += 1

f2.close() #Cierro el archivo donde
se busca
f1.close() #Cierro el archivo que contiene las variables a buscar

print "Fin de la busqueda"

Hola,

Esto te puede dar las lineas sin \n

f =
open("archivo1.txt","r")
lines = []
for line in
f.readlines():
��� if line <> '\n':
������� lines.append(line.replace('\n',''))
f.close()
print lines������� 


Como es logico no se lo que guardas en tu archivo1.txt ni tampoco en tu 
archivo2.xml.
Pero debes cuidarte de que los tags de tu archivo xml no vayan a coincidir con 
los datos
en tu archivo archivo1.txt, (si es que te interesa que no coincidan)�por eso te
sugiero que uses xml.etree.ElementTree para trabajar con el archivo xml.

Saludos.
Boris.




---
La mejor vacuna contra el virus A(H1N1) es la higiene personal
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a