IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Fusionner 4 fichiers csv en 1 seul


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 105
    Par défaut Fusionner 4 fichiers csv en 1 seul
    Re,

    Ma problématique était la suivante.
    Sur un autre forum, quelqu'un se trouvait fort dépourvu quand la bise fut venue...
    Bon sérieux, il regrettait, grand amateur de cryptographie, de ne pas disposer d'un outil d'analyse des messages chiffrés.
    Il voulait pouvoir se consacrer au travail noble de l'analyse, pas à celui fastidieux de la préparation :
    - Passage de tout le message en majuscules,
    - Suppression des espaces,
    - Listage, affichage des quadrigrammes, trigrammes et bigrammes successifs, avec leur n° d'ordre et enregistrer ces 3 listes dans des fichiers ouvrables avec un tableur (d'où l'idée du csv),
    - Tri et affichage de ces quadrigrammes, trigrammes et bigrammes par ordre alphabétique en conservant le bon n° d'ordre, avec enregistrement pour lecture tableur, avec un blanc en cas de changement de 1ere lettre des n-grammes triés,
    - Compilation des listes des quadrigrammes bruts et triés (avec nos), trigrammes triés (avec nos) et bigrammes triés (avec n°s) dans un seul fichier
    - A la fin de ce fichier, on écrit en outre les seuls n_grammes identiques (et leurs nos) avec saut de ligne à chaque groupe différent...
    J'espère avoir été clair...
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    crytpto="AEDCGAEBHDC"
    quadrigrammes
      bruts :    triés :
    1 AEDC     AEBH 6
    2 EDCG     AEDC 1
    3 DCGA
    4 CGAE     BHDC 8
    5 GAEB
    6 AEBH     CGAE 5
    7 EBHD     
    8 BHDC     DCGA 3
     
               EBHD 7
               EDCG 2
     
               GAEB 5
    Le problème a été :
    - de "factoriser" au maximum ce code (on peut toujours écrire "salement", mais ce n'est pas satisfaisant pour l'esprit)
    - que ces 4 fichiers ont des longueurs différentes (en nb d'enregistrement) : comment gérer ça pour ne pas avoir "index out of range" ?

    Les sauts de ligne limités ont "été" aussi difficiles à gérer d'où ma recherche non satisfaisante de codes de contrôles permettant de se déplacer à volonté à l'écran. J'ai géré ça autrement.
    L'exemple donné ici résulterait de la fusion de 2 fichiers csv...

    J'ai traité le tout de façon séquentielle...
    Si vous avez des idées, des pistes, ce sera avec plaisir pour améliorer mon code...

    Au passage, un autre hic.
    Je ne peux pas faire :
    from os import getcwd
    direct...
    je sui obligé de passer par :
    import os
    from os import getcwd

    Normal ???
    Je n'en ai pas l'impression...

    @+

  2. #2
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    C'est pas très clair ton truc .

    Peux-tu décomposer un peu plus et parler à partir de l'exemple complet stp ?

    Pourquoi as-tu besoin de fichiers CSV ? Tu n'aimes pas les listes et les dicos de Python ?
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 105
    Par défaut
    Bonsoir,

    Je reprends et j'enrichis...
    Cette personne voulait notamment le fichier global
    - pour être lu avec un tableur (donc pour moi, le plus simple = csv)
    - et moyennant des réglages prédifinis dudit tableur, préformatage pour pouvoir être imprimé par 60 lignes à la fois.
    Puisque tu y tiens, voilà mon crypto de travail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    crypto="MTBMR OALVD UOEWI ZCGBR LIXSE LWNRV GGKHQ ONPER LNJSH \
    SUBVE ODSCI MKCAZ AKPLE PIRML HVLKO MXRIY DMJZW CQOOJ TICWW \
    QUJHV NPWRI VCACB LYMVA XSMVC PCSLS MCGNA RLVMQ GWZQV SATEQ \
    NVRJA LCHAR ARBZC CRWAZ OQQIR HNPCI JLAZA NJSCA TCQGY XCEJL EQBAC \
    ZSPAC EJTEC EQQOY LCXTA IRBMM ASFKZ OSKUM VXBPS EVVCI AUVWD \
    QLCLY MLOJM EQCZC DGBZA UKISV CQJGL BMTAQ RIA"
    1. Suppression des espaces
    2. Affichage et enregistrement des quadrigrammes successifs avec leur n° d'ordre (extrait --> mon fichier final fait 493 lignes):
    1 MTBM
    2 TBMR
    .........
    3. Affichage et enregistrement des quadrigrammes triés en gardant leur n° (extrait) simultanément avec les quadri successifs :
    ACBL 108
    ACEJ 204
    ........
    4. Affichage et enregistrement des trigrammes successifs avec leur n° d'ordre d'origine (extrait) :
    1 MTB
    2 TBM
    ........
    5. Affichage et enregistrement des trigrammes triés avec leur n° d'ordre d'origine(extrait) :
    ACB 108
    ACE 204
    ........
    6. Affichage et enregistrement des bigrammes successifs avec leur n° d'ordre (extrait) :
    MT 1
    TB 2
    .........
    7. Affichage et enregistrement des bigrammes triés avec leur n° d'ordre d'origine (extrait) :
    AC 108
    AC 199

    8. Ecriture dans un 7e fichier dont voici la structure "horizontale"
    N°,_,qdr succ,_,qdr triés,_,index,_trigr triés,_,index,_,bigr tries,_,index
    les _ sont des espaces pour séparation des colonnes
    Verticalement, les enregistrements devaient respecter cette présensation, ainsi que déjà dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    crytpto="AEDCGAEBHDC"
    quadrigrammes
      bruts :    triés :
    1 AEDC     AEBH 6
    2 EDCG     AEDC 1
    3 DCGA
    4 CGAE     BHDC 8
    5 GAEB
    6 AEBH     CGAE 5
    7 EBHD     
    8 BHDC     DCGA 3
     
               EBHD 7
               EDCG 2
    La cellule doit rester blanche au changement de 1ere lettre...

    9. En fin de programme, j'ai repassé en revue mes 4 fichiers encore ouverts pour n'afficher dans les colonnes correspondantes que les n-grammes identiques par groupes avec une cellule blanche en cas de changement de groupe...

    Voilà, il n'est pas beau, un peu redondant mais c'est le plan que j'ai utilisé. Ce que je voudrais savoir, c'est comment parvenir au même résultat (voulez-vous les uns ou les autres voir mon fichier csv : si oui, je le mettrai en PJ) avec une économie de moyens...

    @+

Discussions similaires

  1. fusionner deux fichiers .exe en un seul
    Par splifo dans le forum Windows
    Réponses: 10
    Dernier message: 03/05/2012, 02h59
  2. [XL-2003] Fusionner des fichiers Excel en un seul
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2010, 20h58
  3. Fusionner plusieurs fichiers .ppt en une seule présentation
    Par db107 dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 09/07/2009, 20h03
  4. Fusionner 2 fichier csv.
    Par cirdec57 dans le forum Développement de jobs
    Réponses: 11
    Dernier message: 26/05/2008, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo