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 :

problème avec la fonction split(":")


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut problème avec la fonction split(":")
    Bonjour,

    Voila, j'ai un petit problème avec la fonction split().
    Je suis en train de faire une petite application qui consiste à entrer les coordonnées de personnes dans un fichier puis de les lire.
    Mon problème viens du fait que la fonction split m'éclate mes chaînes de caractère en les séparant tous. Or je voudrais que la fonction le fasse en fonction du caractère séparateur ":" .Voici mon bout de code qui pose problème
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    # -*- coding : Latin-1 -*-
    from Tkinter import *
    
    def charger_fichier():
        global mon_fichier, fichier, liste_brute, liste_brute1, j
        mon_fichier = 'c:\\' + entree.get() +'.txt'
        fichier = open(mon_fichier, 'r')
        liste_brute = fichier.readlines()
        #liste_brute contient le fichier à ouvrir
        #liste_brute1 contient les éléments de liste brute séparés par :
        for j in liste_brute:
            j.split(":")
            nom_list.append(j[0])
            prenom_list.append(j[1])
            codepost_list.append(j[2])
            num_phone_list.append(j[3])
            label_test.configure(text = nom_list + prenom_list + codepost_list + num_phone_list)
        
    
    def enregistrer():
        global nom_list, prenom_list, codepost_list, num_phone_list, i, fichier, mon_fichier
        nom_list.append(nom.get())
        prenom_list.append(prenom.get())
        codepost_list.append(str(code_postal.get()))
        num_phone_list.append(str(num_phone.get()))
        label_test.configure(text = mon_fichier)
        for i in range(len(nom_list)):
            fichier = open(mon_fichier, 'w')
            fichier.write(nom_list[i]+":"+prenom_list[i]+":"+ codepost_list[i]+":"+ num_phone_list[i])
    
        
    def quitter():
        fichier.close()
        fen1.destroy()
        
    mon_fichier = ""
    fichier =""
    i  = ""
    j = ""
    liste_brute1 =[]
    liste_brute =[]
    nom_list = []
    prenom_list =[]
    codepost_list = []
    num_phone_list =[]
    fen1 = Tk()
    bouton1 = Button(fen1, text="chargement du fichier", command = charger_fichier)
    bouton1.grid(row = 0, column = 1, sticky = W, padx = 1, pady = 1)
    entree = Entry(fen1)
    entree.grid(row=0, column = 2, sticky=W, padx = 1, pady = 1)
    quitter = Button(fen1, text="quitter", command = quitter)
    quitter.grid(row=0, column = 3, sticky = W, padx =1, pady = 1)
    enregistrer = Button(fen1, text = "enregistrer", command = enregistrer)
    enregistrer.grid(row = 0, column = 4, sticky = W, padx = 1, pady = 1)
    prenom = Entry(fen1)
    prenom.grid(row = 1, column = 2, sticky = W)
    label_prenom = Label(fen1, text = "Prenom")
    label_prenom.grid(row = 1, column = 1, sticky = W)
    nom = Entry(fen1)
    nom.grid(row = 2 , column = 2, sticky = W)
    label_nom = Label(fen1, text = "Nom")
    label_nom.grid(row = 2, column = 1, sticky = W)
    code_postal = Entry(fen1)
    code_postal.grid(row = 3 , column = 2, sticky = W)
    label_code_post = Label(fen1, text = "Code postal")
    label_code_post.grid(row = 3, column = 1, sticky = W)
    num_phone = Entry(fen1)
    num_phone.grid(row = 4, column = 2, sticky = W)
    label_num_phone = Label(fen1, text ="Numero de telephone")
    label_num_phone.grid(row = 4, column = 1, sticky = W)
    tableau = Canvas(fen1, bg= "white", height = 400, width = 400)
    tableau.grid(row = 5, column = 1, columnspan = 3, padx = 5, pady = 5)
    label_test = Label(fen1, text = 'ceci est texte de test')
    label_test.grid(row = 6, column = 1, columnspan = 3, padx = 5, pady = 5)
    fen1.mainloop()
    merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    La méthode split ne modifie pas la chaîne de caractères (d'ailleurs les chaînes de caractères sont immutables en Python), elle retourne une liste de chaînes.
    Il faut donc écrire qqch comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    k = j.split(':')
    nom_list.append(k[0])
    ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut
    merci dividee

    tout marche, avec ta méthode

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

Discussions similaires

  1. [XL-2007] Problème avec la fonction Split et un tableau
    Par flo1411 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 15/04/2013, 09h56
  2. [VB6]Problème avec la Fonction Split
    Par Goupo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/06/2007, 19h23
  3. [Tableaux] problème avec la fonction split()
    Par Marcus15 dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 11h17
  4. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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