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 :

importer fichiers texte dans une liste


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Points : 12
    Points
    12
    Par défaut importer fichiers texte dans une liste
    Bonjour,
    Je souhaite sauvegarder les meilleurs scores sur le jeu du demineur. Le problème et que j'arrive à sauvegarder les score mais pas à les trier ni à faire inscrire le nom. Je sais qu'il faudrait que j'importe mon fichier sauvegarde dans une liste pour pouvoir le trier et le modifié facilement.
    Comment faire cela?

    Merci...

  2. #2
    Membre habitué
    Avatar de Zorro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 130
    Points
    130
    Par défaut
    Un exemple de code?
    la partie de que tu utilise pour enregistrer ton fichier

    Z

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    c'est basic, on mets juste le score dans un fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def print_sauvegarde():
        f=file('sauvegarde.txt','a+')
        f.write("%s" % root[14]['text'])
        f.write("\n")
    root[14] represente le chrono, quand on gagne on mets le temps dans le fichier

  4. #4
    Membre habitué
    Avatar de Zorro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 130
    Points
    130
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def filetolist(myfile):
    	lst = []
    	for score in file(myfile):
    		lst.append(score[:-1])
            return lst
    >>>scores = filetolist('scores.txt')
    >>>print scores
    >>> ['125','200','10']
    Cette fonction renvoi un liste des toutes les valeurs du fichier

    Z

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    le truc c'est que j'aimeré que une fois fini, il me permette de rentré mon nom si je suis dans les 10 meilleurs et qu'apres le fichier s'affiche, c'est possible tout sa?

  6. #6
    Membre habitué
    Avatar de Zorro
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 130
    Points
    130
    Par défaut
    Oui

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    des idées zorro? parce que sa fait 3 jour qu'on essaie mais c'est au point mort à ce niveau là....

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Points : 290
    Points
    290
    Par défaut
    Voici un exemple, mais il y a surement mieux:

    Tu peux présenter ton fichier text comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Clovis|30
    dudule|15
    gaston|10
    zoulou|8
    ...
    et ensuite:

    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
     
    import operator
     
    #recupere et parse le fichier txt
    def get_list():
        lst = []
        for score in file("sauvegarde.txt"):
            #recupere les noms et les scores dans une liste
            lst.append(score[:-1].split('|'))
     
        #transforme le score en int
        lst = [(nom, int(chiffre)) for nom, chiffre in lst]  
        #trie la liste
        lst = sorted(lst, key=operator.itemgetter(1), reverse=True)
        return lst
     
    #ecriture du fichier  
    def write_score(list_score):
        f=file("sauvegarde.txt",'w')
        for score in list_score:
            f.write("%s|%i" %score)
            f.write("\n")
        f.close()
     
    #ajoute un nouveau score
    def add_score(nom, score):
        list_score = get_list()
        #si il n'y a pas 10 score
        if len(list_score) < 10:
            list_score.append((nom, score))
            write_score(list_score)
        #si il le nouveau score est superieur au score le plus bas
        elif score > list_score[-1][1]:
            del list_score[-1]
            list_score.append((nom, score))
            write_score(list_score)
     
    add_score('gargamel', 8)
    de cette façon tu stoques uniquement les 10 meilleurs scores avec le nom et le score.

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

Discussions similaires

  1. stocker un fichier texte dans une liste
    Par dougie dans le forum C
    Réponses: 6
    Dernier message: 11/01/2011, 13h58
  2. Importation fichier texte dans une boucle
    Par asphodele dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2010, 11h41
  3. Charger fichier texte dans une liste ?
    Par bahamut100 dans le forum C
    Réponses: 3
    Dernier message: 08/12/2009, 14h34
  4. [AC-2003] import fichier texte dans une table
    Par souketou dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/05/2009, 09h49
  5. Importer fichier texte dans une feuille
    Par malouxa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2008, 20h45

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