2016-12-27 4 views
-1

Je suis en train de diff entre 2 fichiers en pythonPython diff ne fonctionne pas dans tous les fichiers

J'ai essayé d'utiliser ce code:

with open(file_1, "r") as file1: 
    with open(file_2, "r") as file2: 
     diff = set(file1).difference(file2) 

with open(file_o, "w") as file_out: 
    for line in diff: 
     file_out.write(line) 
file_out.close() 
if os.path.getsize(file_o) == 0: 
    print "match" 
else: 
    print "does not match" 

Mais je suis face à un problème à l'aide, il ne fonctionne pas pour tous les fichiers !!

Ceci est totalement étrange, aucune idée pourquoi? et comment puis-je le réparer?

s'il y a un moyen très rapide pour diffing 2 fichiers sans être sensible à l'ordre de ligne, serait reconnaissant

Merci

+0

Quel est votre objectif? Il existe d'autres outils qui offrent de meilleures solutions si vous voulez juste voir les différences entre deux fichiers. – MYGz

+0

Je veux vérifier si elles correspondent, si les fichiers ne correspondent pas, alors je veux imprimer les différences à la sortie du fichier –

+0

@MYGz, je voudrais avoir de meilleures solutions, surtout si elles sont plus rapides. Merci –

Répondre

0

Ne nous donner plus d'entrée pour expliquer pourquoi il ne fonctionne pas. Au-dessus de ma tête, en regardant votre code, la comparaison pour voir si le fichier est ouvert ou non est tout simplement risqué. L'inode du fichier peut avoir une taille même s'il est vide. Si vous voulez, ce que vous pouvez faire est de vérifier si diff est vide, plutôt que le fichier, ce qui ferait une meilleure comparaison.

+0

rien de spécial sur les fichiers d'entrée qui échoue, il y a deux fichiers txt de 60 lignes, j'ai vérifié le fichier de sortie, et son vide tho –