Bonjour,
J'ai un script à réaliser et je ne sais pas par quel bout le prendre.
J'ai d'un coté un fichier plat A de 600000 lignes et de l'autre un second B de 400000.
Je dois récupérer dans A toutes les lignes qui matche avec les lignes de B.
Ma grosse inquiétude sont les performances, je ne souhaite pas avoir 20H de traitement.
De plus les lignes de B, ne sont qu'une partie des lignes de A. Une fois matché je souhaite extraire des données des lignes de A
Après quelques recherche sur le Oueb, je me pose toujours la question :
1/ que dois je utiliser pour parser mon fichier A (set ? )
2/ pour faire matcher B sur les lignes de A dois je utiliser le module re
3/ pour extraire les infos dois-je utiliser des liste ou écrire dans mon fichier résultat.
Existe-t-il une méthode pour avoir des performances intéressante ? ( je ne suis pas développeur de métier )
car si j'utilise une boucle for imbriqué pour parser les fichiers j'aurai des perfs merdique ( je pense )
J'ai à la fois un souci de méthode et de gestion de gros fichier merci pour vos pistes éventuelles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #!/usr/bin/python import os, re with open('result.txt', 'a') as result: with open(B) as b: blines = set(b) print 'process ' + str(filename) with open(A) as a: alines = set(a) for line in alines: for lines in blines: <-- je bloque result.write(s)
PS; j'ai recherché sur le forum, mais je n'ai pas trouvé de sujet équivalent
Partager