Grep de pattern entre 2 fichiers
Résolu/Fermé
irishupk
Messages postés
25
Date d'inscription
vendredi 13 avril 2018
Statut
Membre
Dernière intervention
29 juin 2020
-
Modifié le 13 avril 2018 à 14:48
irishupk Messages postés 25 Date d'inscription vendredi 13 avril 2018 Statut Membre Dernière intervention 29 juin 2020 - 16 avril 2018 à 00:31
irishupk Messages postés 25 Date d'inscription vendredi 13 avril 2018 Statut Membre Dernière intervention 29 juin 2020 - 16 avril 2018 à 00:31
A voir également:
- Grep de pattern entre 2 fichiers
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- 2 comptes whatsapp - Guide
- Fusionner 2 fichiers excel - Guide
- Word numéro de page 1/2 - Guide
1 réponse
Bonsoir.
Python possède une structure de données très pratique permettant de faire cela facilement, les dictionnaires.
L'idée est d'éclater les lignes du fichier
La 1ère valeur représentera la clé du dictionnaire, la 2ème, sa valeur.
Cela fait, il sera de cette façon extrêmement simple de regarder si les valeurs du fichier
Et pour être certain de ne pas être ennuyé par d'éventuels caractères blancs, on effectue un
Ce qui donne :
Au passage, si tu n'as pas de raisons valables d'utiliser python2, il serait mieux d'utiliser python3 (les 2 premières lignes de ce bout de code seront alors à supprimer car inutiles en python3).
Python possède une structure de données très pratique permettant de faire cela facilement, les dictionnaires.
L'idée est d'éclater les lignes du fichier
ortho.txtpar la valeur
-PA REF_.
La 1ère valeur représentera la clé du dictionnaire, la 2ème, sa valeur.
Cela fait, il sera de cette façon extrêmement simple de regarder si les valeurs du fichier
hits2.txtsont des clés du dictionnaire.
Et pour être certain de ne pas être ennuyé par d'éventuels caractères blancs, on effectue un
str.stripsur les valeurs.
Ce qui donne :
#!/usr/bin/ # -*- coding: utf-8 -*- from __future__ import with_statement, print_function with open("hits2.txt") as fhits, open("ortho.txt") as fortho: hits = [hit.strip() for hit in fhits.readlines()] ortho = dict() for line in fortho.readlines(): k, v = line.split('-PA REF_') ortho[k.strip()] = v.strip() for hit in hits: print(ortho.get(hit, 'NA'))
Au passage, si tu n'as pas de raisons valables d'utiliser python2, il serait mieux d'utiliser python3 (les 2 premières lignes de ce bout de code seront alors à supprimer car inutiles en python3).
Modifié le 16 avril 2018 à 00:58