es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comparar 2 archivos de texto y mostrar la diferencia.

Tengo dos archivos de texto:

Primer archivo de texto:

email1@domain.com:password
email2@domain.com:password
email3@domain.com:password
email4@domain.com:password
email5@domain.com:password

Segundo archivo de texto:

email3@domain.com:password
email5@domain.com:password

¿Cómo puedo mostrar las diferencias entre ellos independientemente del número de línea? Quiero mostrar un tercer archivo:

Tercer archivo de texto:

email1@domain.com:password
email2@domain.com:password
email4@domain.com:password
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de lograr esto es usando Python. Aquí está el código:

    with open('file1.txt') as f1, open('file2.txt') as f2, open('file3.txt', 'w') as f3:
        set1 = set(f1)
        set2 = set(f2)
        set3 = set1.difference(set2)
        f3.writelines(set3)
    

    Explicación:

    1. Primero, usamos la expresión with para abrir los tres archivos. La expresión with asegura que los archivos se cerrarán correctamente después de que terminemos con ellos.
    2. Leemos el contenido del primer archivo f1 en un conjunto llamado set1. De manera similar, leemos el contenido del segundo archivo f2 en un conjunto llamado set2.

    3. Encontramos la diferencia de conjunto entre set1 y set2, y la almacenamos en un conjunto llamado set3. Este conjunto contiene todas las líneas que están en file1.txt, pero no en file2.txt.

    4. Finalmente, escribimos el contenido de set3 en el tercer archivo f3.

    Tenga en cuenta que la función set() elimina automáticamente las líneas duplicadas de los archivos, por lo que no tenemos que preocuparnos por eso. Además, el orden de las líneas en el tercer archivo file3.txt puede no ser el mismo que el orden en el primer archivo file1.txt, pero eso no debería ser un problema ya que solo nos importan las diferencias entre los archivos.

Comments are closed.