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 :

Organisation de données brutes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut Organisation de données brutes
    Bonjour,

    Je requiers votre aide pour me mettre sur la bonne piste.

    Je dispose d'un fichier texte dans lequel trois types de données sont présents :
    NomSociété, Domiciliation, RIB

    Chaque type de donnée se trouve sur une ligne distincte.
    Une société peut avoir plusieurs comptes (doublet Domiciliation - RIB) ; mais dans ce cas le nom de la société n'apparait qu'une fois.
    Chaque ligne RIB commence par la chaine de caractères "R.I.B.".

    Voici un exemple de fichier brut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    NomSociété01
    Domiciliation01
    R.I.B. RIB01
    NomSociété02
    Domiciliation02
    R.I.B. RIB02
    Domiciliation02b
    R.I.B. RIB02b
    Domiciliation02c
    R.I.B. RIB02c
    NomSociété03
    Domiciliation03
    R.I.B. RIB03
    ...
    et souhaite générer un nouveau fichier avec la structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NomSociété01;Domiciliation01;RIB01
    NomSociété02;Domiciliation02;RIB02
    NomSociété02;Domiciliation02b;RIB02b
    NomSociété02;Domiciliation02c;RIB02c
    NomSociété03;Domiciliation03;RIB03
    ...
    Je tente de le faire via Python.

    Merci.

    fylip22

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Pas tellement le choix, il faut baser la logique sur la détection de la chaîne "R.I.B." puisque c'est le seul élément qui permet de "partionner" les données.

    En parcourant ligne par ligne, tu mesures le nombre de ligne entre 2 "R.I.B.".

    Si n=2, c'est qu'on traite une nouvelle société, si n=1, c'est qu'il s'agit de la même société avec une autre domiciliation.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    Merci pour l'aide. Voici le résultat en Python :

    Code python : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    import os, re
     
    chemin=('D:/exabanq/')
    cheminnouveau=('D:/exabanq/')
     
    fichiers="liste-005.txt"
    fichierd="liste-005p.txt"
     
    fs=open(chemin+fichiers,'r')
    fd=open(cheminnouveau+fichierd,'w')
     
        # mémorisation de l'ensemble du fichier
    fx=fs.readlines()
     
        # fermeture du fichier source
    fs.close
     
        # Chaine identifiable
    strChaine="R.I.B."
    nLongueurChaine=len(strChaine)
     
        # nombre de lignes du fichier
    nTaille=len(fx)
     
    Tampon=""
    i=0
     
    while i <nTaille:
        if fx[i][:nLongueurChaine]==strChaine and fx[i-3][:nLongueurChaine]==strChaine or i==2:
                # nouvelle société et premier RIB
            strSociete=fx[i-2][:-1]
            Tampon=strSociete
            strBanque=fx[i-1][:-1]
            strRIB=fx[i][-27:]
            strCompte="%s;%s;%s" % (strSociete,strBanque,strRIB)
            fd.write(strCompte)
        if fx[i][:nLongueurChaine]==strChaine and fx[i-2][:nLongueurChaine]==strChaine:
                # même société
            strSociete=Tampon
            strBanque=fx[i-1][:-1]
            strRIB=fx[i][-27:]
            strCompte="%s;%s;%s" % (strSociete,strBanque,strRIB)
            fd.write(strCompte)
        i+=i
     
    fd.close
     
    print "Fin"

    fylip22

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Organiser les données d'un fichier
    Par virtuadrack dans le forum C
    Réponses: 29
    Dernier message: 01/05/2007, 08h44
  2. [MySQL] Organisation de données
    Par jeremy_chauvel dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/01/2007, 17h10
  3. tomcat, upload et organisation des donnèes
    Par Pikwik dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 05/09/2006, 10h59
  4. [SWT]organisation des données dans un gridlayout
    Par whilecoyote dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/12/2005, 17h24
  5. Réponses: 1
    Dernier message: 24/05/2005, 14h50

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