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

wxPython Discussion :

récupère contenu csv dans tableau


Sujet :

wxPython

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 73
    Par défaut récupère contenu csv dans tableau
    Bonjour,

    Je souhaiterai récupérer les données d'un fichier csv dans un tableau, de façon automatique, en utilisant un bouton qui ouvrirait l'explorateur et s'afficherait dans un tableau.
    Il n'y a que peu de temps que je me suis mis à Python.

    Merci à vous.

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Par défaut
    Bonjour,

    Je te donne un début de code pour lire un fichier CSV

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import csv
    i = 0    #Un compteur au cas ou tu veux t'arreter à une ligne
    file = open("nom de ton fichier csv", 'r')
    filecsv = csv.reader(open("nom de ton fichier csv", "r"))
    for var1 in filecsv:
         vararecup = var1[numerocolonne]    #Tu vas récupérer chaque case de la colonne
         if i == un nombre de ligne:
                ta case a recup = vararecup
         else:
                i = i + 1
    file = open("nom de ton fichier csv", 'r')
    file.close()
    Voila un petit exemple. Alors le trucs c'est que là il lit ta colonne jusqu'à la dernière ligne il me semble mais bon c'est rapide. Bon courage pour la suite.

    EDIT :

    Code pour ton bouton

    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
     
    import wx
    class MaFenetre(wx.Frame):
            def __init__(self, titre):
                wx.Frame.__init__(self, None, -1, title = titre, pos = (x, y), size = (x, y))
                panel = wx.Panel(self,-1)
                text = wx.StaticText(panel, 1,"Cliquer sur ok pour trier les donner du fichier CSV dans tableau.", style = wx.ALIGN_CENTER)
                bouton = wx.Button(panel,-1,label = "Départ", pos = (x, y))
                self.Bind(wx.EVT_BUTTON,self.OnClick, bouton)
     
    def OnClick(self, event):
                self.Destroy()
                ####################  La tu envois vers ton fichier qui contiendra la lecture du fichier CSV et l'affichage ou la réécriture du fichier CSV.
                tonnomdefichier.tafonction(Eventuellementlesparamètres)
                ####################
     
    class MonApp(wx.App):
           def OnInit(self):   
               fen = MaFenetre("Trie fichier CSV")
               fen.Show(True)
               self.SetTopWindow(fen)
               return True
     
    app = MonApp()
    app.MainLoop()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 73
    Par défaut Bout de code...
    Salut Mugen RX,

    Merci de ta réponse,

    mais comme je l'ai dit, je débute en python, ce qui fait que j'ai pas bien saisi ton code et j'ai une erreur sur la première partie :
    Voilà comment je l'ai modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import csv
    i = 0    #Un compteur au cas ou tu veux t'arreter à une ligne
    file = open("SV2.csv", 'r')
    filecsv = csv.reader(open("SV2.csv", "r"))
    for var1 in filecsv:
         vararecup = var1[numerocolonne]    #Tu vas recuperer chaque case de la colonne
         if i == 1 :                        #un nombre de ligne
                i = vararecup               #ta case a recup
         else:
                i = i + 1
    file = open("SV2.csv", 'r')
    file.close()
    Et j'ai le message d'erreur suivant :
    >pythonw -u "Transfert.py"
    Traceback (most recent call last):
    File "Transfert.py", line 9, in <module>
    vararecup = var1[numerocolonne] #Tu vas recuperer chaque case de la colonne
    NameError: name 'numerocolonne' is not defined
    >Exit code: 1
    Pourrais tu me dire ce que je dois mettre ?

    Merci

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Par défaut
    Re,

    A la place de numerocolonne, il te faut mettre le chiffre de la colonne que tu veux regarder. Par exemple pour la colonne A tu mettras 0, B tu mettras 1, etc...

    EDIT : Oui alors, je suis peut être aller un peu vite

    Dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if i == 1:     #J'ai mis mais tu peux mettre autre chose.
    # Cela te permet de stocker la valeur de la case colonne (Celui que tu veux ==> numerocolonne), ligne 1 pour ici dans cette exemple
    Si tu veux classer dans un tableau, je te conseil déjà de faire une ligne à la main pour savoir ce que tu veux faire. Est ce que c'est pour retravailler ton fichier CSV?Pour afficher dans une table python, pour écrire dans un fichier texte, je sais pas quoi d'autre, bref il te faut savoir. Dans mon exemple, il balaye l'ensemble des ligne pour une colonne. Mais tu peux très bien récupérer toutes les colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if i == numerodetaligne:
        varA = var1[0]     #(Ligne = numerodetaligne,  Colone = A)
        varB = var1[1]     #(Ligne = numerodetaligne,  Colone = B)
    #etc...
    ou bien sous forme de liste.
    Si tu débute, je te conseil, de suivre les exemples qui sont très utiles. Assemblés des bouts de codes comme ca, cela se fait mais c'est difficile à comprendre.

    Désolé je manque sans doute de clarté, fin de journée. Bon courage en tout cas.

Discussions similaires

  1. Parser fichier csv dans tableau
    Par djdmd dans le forum VBScript
    Réponses: 1
    Dernier message: 22/11/2012, 16h40
  2. csv dans tableau
    Par rico3434 dans le forum C++
    Réponses: 5
    Dernier message: 26/12/2011, 12h37
  3. charger ligne fichier csv dans tableau C
    Par nhella22 dans le forum Débuter
    Réponses: 6
    Dernier message: 21/04/2011, 20h28
  4. csv dans tableau
    Par sverdo dans le forum Tkinter
    Réponses: 2
    Dernier message: 11/02/2010, 16h21
  5. contenu csv dans jtextpane
    Par bergoliv dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 30/11/2009, 13h59

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