comparaison de sequence texte

comparaison de sequence texte - Python - Programmation

Marsh Posté le 11-06-2015 à 16:56:37    

Bonjour
Je souhaite comparer chaque ligne de chaque fichier pour extraire les lignes identiques
 
J’ai 2 fichiers d’entrée  
 
Fichier 1 : (10000 lignes)
1 mon
10 ton
4 son
 
 
Fichier2 : (20000 lignes)
22 luu
21 mon
4 maa
100 ton
3 taa
 
 
Je souhaite 2 fichiers de résultats
Res1 :
1  21  mon
10  100  ton
 
Res2
4 son
22 luu
4 maa
3 taa
 
Je suis plus que débutant en python 2.7
J’ai tenté une comparaison de valeurs de dictionnaire ou de liste mais sans succès.
Voici un exemple qui ne fonctionne pas
 

Code :
  1. for f1 in F1.readlines():
  2.         liste_F1 = f1.split('\t')
  3.         dico_F1= {liste_F1[0] : liste_F1[1]}
  4.         for clef1, val1 in dico_F1.items():
  5.                 for f2 in F2.readlines():
  6.                         liste_F2 = f2.split('\t')
  7.                         dico_F2= {liste_F2[0] : liste_F2[1]}
  8.                         for clef2, val2 in dico_F1.items():
  9.                              if val1 in  val2:
  10.                                      Res1.write( clef1  + "\t" + clef2  + "\t" +val1 )


 
Merci pour votre aide

Reply

Marsh Posté le 11-06-2015 à 16:56:37   

Reply

Marsh Posté le 16-06-2015 à 11:24:35    

J'ai une solution
une fois le fichier ouvert et lu, il ne peut pas être relu dans la boucle.
il faut donc créer un fichier lines = F2.readlines() et le mettre dans la seconde boucle.
Inconvénient pour les grands fichiers, ça peut prendre du temps.
 
Si je trouve mieux, je l'indiquerai

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed