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 :

Traitement fichier csv


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Par défaut Traitement fichier csv
    Bonjour à tous,

    Je vous sollicite afin de trouver la meilleure méthode pour traiter des fichiers CSV.

    J'ai un fichier CSV sans en-tête contenant des ligne d'information comme ci-dessous :
    43-33-14p22N1-02-35p53W_TIC_110506_090507.csv;SNTIC;1;TypeTIC;43-33-14p22N1-02-35p53W;06/05/11;06:30:04;HPE;1;5702
    43-33-14p22N1-02-35p53W_TIC_110506_090507.csv;SNTIC;1;TypeTIC;43-33-14p22N1-02-35p53W;06/05/11;07:00:03;HPE;1;5709
    43-33-14p22N1-02-35p53W_TIC_110506_090507.csv;SNTIC;1;TypeTIC;43-33-14p22N1-02-35p53W;06/05/11;07:30:06;HPE;1;5720
    43-33-14p22N1-02-35p53W_TIC_110506_090507.csv;SNTIC;1;TypeTIC;43-33-14p22N1-02-35p53W;06/05/11;08:00:08;HPE;1;5731
    43-33-14p22N1-02-35p53W_TIC_110506_090507.csv;SNTIC;1;TypeTIC;43-33-14p22N1-02-35p53W;06/05/11;08:30:01;HPE;1;5740
    43-33-14p22N1-02-35p53W_TIC_110506_090507.csv;SNTIC;1;TypeTIC;43-33-14p22N1-02-35p53W;06/05/11;09:00:04;HPE;1;5761
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;15:30:08;HPE;3;13799
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;16:00:06;HPE;3;13819
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;16:30:04;HPE;3;13832
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;17:00:02;HPE;3;13844
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;17:30:09;HPE;3;13855
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;18:00:03;HPE;3;13859
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;18:30:02;HPE;3;13862
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;19:00:05;HPE;3;13862
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;19:30:01;HPE;3;13862
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;20:00:10;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;20:30:08;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;21:00:06;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;21:30:05;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;22:00:03;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;22:30:01;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;23:00:10;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;05/05/11;23:30:08;HCE;0;1585
    43-38-23p08N0-43-19p00W_TIC_110506_090518.csv;SNTIC;1;TypeTIC;43-38-23p08N0-43-19p00W;06/05/11;00:00:06;HCE;0;1585
    Je dois faire des regroupements :
    - par colonne 5
    - puis sur le résultat obtenu faire par colonne 6
    - puis sur le résultat obtenu par colonne 8
    - afin de faire la différence entre le min et le max de la colonne 10

    Je ne sais pas ce qui le plus adapté : dictionnaires, listes autres...

    Merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    tu as regardé du côté du module csv de la librairie standard ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Par défaut
    oui en fait j'arrive à récupérer les données dans une liste mais ensuite je suis bloqué, je ne sais pas regrouper sur des élément de la liste.

    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
    18
    19
    f = open(fich, 'rt')
    listProv1 = [] # liste des data mis en forme pour traitement par site
    try:
        reader = csv.reader(f)
        for row in reader:
            for col in row:
                site = col[62:86]
                date = col[86:95]
                heure = col[95:104]
                periode = col[104:108]
                compteur = col[110:]
                ligne = site + date + periode + compteur
                listProv1.append(ligne)
    finally:
        f.close()
     
     
    for elem in listProv1:
        print elem
    merci de ton aide

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Par défaut
    trouvé, en fait il suffit d'ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    temp = []
     
    for item in listProv:
        if item.find('43-46-13p95N0-43-41p34W') != -1:
            temp.append(item)
     
    for item in temp:
        print item
    Merci de ton aide

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

Discussions similaires

  1. Traitement fichier CSV en masse
    Par meccool74 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/08/2012, 18h21
  2. Réponses: 18
    Dernier message: 24/06/2011, 15h13
  3. Traitement fichier CSV et recherche de sous-chaines
    Par j.lasnier dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/03/2010, 11h31
  4. Traitement fichiers csv
    Par athra dans le forum Forms
    Réponses: 0
    Dernier message: 20/06/2008, 11h17

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