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 :

Python et CSV


Sujet :

Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut Python et CSV
    Bonjour à tous,

    Débutant en programmation je cherche à faire un script qui me permettrait pour chaque liste d'un tableau csv d'appliquer une formule mathématique à chaque ligne d'un colonne et écrire le résultat dans une colonne (crée avant ou pendant l'exécution du script).

    Je vous avoir regardé la documentation de python concernant le traitement de .csv mais ne pas avoir vraiment vu comment me dépatouiller...

    Merci d'avance,

    Ash

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 292
    Par défaut
    Bonjour,

    google: python csv -> http://docs.python.org/library/csv.html

    Qu'est ce que tu ne comprends pas dans la documentation?

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Lire un fichier csv permet de retrouver en mémoire une "liste de listes", chaque sous-liste représentant une ligne, et chaque élément de cette sous-liste représentant la valeur d'une colonne.

    [[1ère ligne], [2e ligne], ..., [dernière ligne]]
    [1ère ligne] ==> [1ère colonne, 2e colonne, ...]

    Après, ce qui est projeté comme travail, c'est de la manipulation de liste.

    Si tu veux plus d'aide, il faut donner un exemple simple sur lequel on peut discuter.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut
    Gakusei: Navré mais dès lors que ca commence à parler de classe, objet etc je suis perdu. Je débute vraiment..

    tyrtamos: Merci de me prendre par la main pour avancer.

    Voici une version d'exemple de mon fichier csv:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ID;Xa;Ya
    1;3,23;178,46
    2;150,12;12,87
    3;32,54;56,89
    4;23,61;43,12
    5;98,19;76,32
    6;54,78;132,48
    7;12,52;189,43
    8;13,21;8,24
    L'idée est donc de:

    Créer deux nouvelles colonnes dans ce tableau: Xb et Yb
    Venir ensuite écrire dans Xb le résultat d'une équation disons:
    Xb = cosXa
    Et dans Yb le résultat d'une autre équation:
    Yb = -sinXb

    Je commence à bosser à partir de: http://www.chicoree.fr/w/Fichiers_CSV_en_Python

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Tu n'échapperas pas à consulter un bon doc de formation comme, par exemple, http://python.developpez.com/cours/TutoSwinnen/. A défaut, tu passeras ton temps à poser des questions et tu n'avanceras pas.

    Voilà un petit code qui fait ce que tu souhaites:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    from math import *
    import csv
     
    # lire le fichier csv
    with open("test.csv", "rb") as f:
        liste = []
        for ligne in csv.reader(f, delimiter=';', quoting = csv.QUOTE_NONE):
            liste.append(ligne)
            print ligne
     
    # Ajouter les titres de colonnes supplémentaires 1ère ligne
    liste[0].append('Xb')
    liste[0].append('Yb')
     
    # Ajouter les nouveaux résultats sur les 2 colonnes supplémentaires
    for i in xrange(1, len(liste)):
     
        # 4e colonne
        Xa = float(liste[i][1].replace(',', '.'))
        Xb = cos(Xa)
        liste[i].append(("%.2f" % (Xb,)).replace('.', ','))
     
        # 5e colonne
        Ya = float(liste[i][2].replace(',', '.'))
        Yb = -sin(Ya)
        liste[i].append(("%.2f" % (Yb,)).replace('.', ','))
     
    # affichage
    for ligne in liste:
        print ligne
     
    # Ecriture dans un nouveau fichier csv
    with open("test_B.csv", "wb") as f:
        c = csv.writer(f, delimiter=';', quoting = csv.QUOTE_NONE)
        for ligne in liste:
            c.writerow(ligne)
    Avec un fichier source contenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ID;Xa;Ya
    1;3,23;178,46
    2;150,12;12,87
    3;32,54;56,89
    4;23,61;43,12
    5;98,19;76,32
    6;54,78;132,48
    7;12,52;189,43
    8;13,21;8,24
    Le fichier destination contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ID;Xa;Ya;Xb;Yb
    1;3,23;178,46;-1,00;-0,57
    2;150,12;12,87;0,78;-0,30
    3;32,54;56,89;0,43;-0,33
    4;23,61;43,12;0,05;0,76
    5;98,19;76,32;-0,70;-0,80
    6;54,78;132,48;-0,20;-0,51
    7;12,52;189,43;1,00;-0,80
    8;13,21;8,24;0,80;-0,93
    Épluche le code et dis ce que tu ne comprends pas.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut
    tyrtamos: Je bosse actuellement avec Learn Python the Hard Way, mais pour des besoins immédiat j'avais besoin de me faire aider...
    Merci bcp ! Je teste tout ca ce soir

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut
    Salutations,

    Bon entre deux-trois urgences et des vacances, je reviens seulement maintenant sur mon problème de python.

    J'ai testé le script et ca marche parfaitement merci !
    J'y ai passé un peu de temps mais je pense avoir globalement tout compris du fonctionnement global.
    Il me reste quelques questions propre à la syntaxe python, donc je trouverais sans doute mes réponses en continuer de travailler.

    Encore merci tyrtamos

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

Discussions similaires

  1. [CODE] Python 3.2 : lecture d'un fichier .csv
    Par Monkey B. Goode dans le forum Général Python
    Réponses: 2
    Dernier message: 28/06/2012, 17h45
  2. Les csv et Python
    Par jujulips dans le forum Général Python
    Réponses: 1
    Dernier message: 02/04/2011, 07h18
  3. conversion d'un fichier csv en un tableau python
    Par titou_170 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 25/11/2010, 11h40
  4. Ecriture .csv python 3.1
    Par mister2502 dans le forum Général Python
    Réponses: 4
    Dernier message: 02/07/2009, 18h06
  5. python et fichier .CSV
    Par billyrose dans le forum Général Python
    Réponses: 7
    Dernier message: 22/07/2008, 07h53

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