Bonjour,

j'essaie de coder une fonction qui me permette d'insérer le nom et le score d'un joueur dans un fichier binaire, afin d'obtenir un dico du genre {toto: 0, titi: 50, fifi: 20}
Vous l'aurez compris, je débute et je ne vois pas mon erreur, voici mon code :

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
# -*-coding:Utf-8 -*
 
import pickle
import os.path
 
# Ajout du joueur à la suite du fichier
def ajout_joueur(nom_joueur, score):
    score_joueur = {nom_joueur: score}
    file = open('scores_file', 'ab')
    pickle.dump(score_joueur, file)
 
# Check si le fichier existe
def verif_file(nom_joueur):
 
    sf = 'scores_file'
    # si le fichier existe, on check si le joueur est présent dans le fichier
    if os.path.isfile(sf):
        verif_joueur(nom_joueur)
    # si le fichier n'existe pas, on créé le fichier avec le nom du joueur et le score 0
    else:
        score_joueur = {nom_joueur: 0}
        file = open('scores_file', 'wb')
        pickle.dump(score_joueur, file)
        file.close
 
# Check si le joueur est dans le fichier
def verif_joueur(nom_joueur):
 
    file = open('scores_file', 'rb')
    content = pickle.load(file)
    print(content)
    ajout_joueur(nom_joueur, 10)
    file.close()
 
def verif_scores(nom_joueur):
 
    verif_file(nom_joueur)
J'ai mis une valeur de score à 10 pour le test, mon problème est que je ne parviens pas à lister tous les éléments de mon fichier, ça affiche uniquement le premier. Merci d'avance.

PS : j'ai retiré la condition de vérification du joueur volontairement, du coup il peut y avoir plusieurs joueurs qui s'appellent "toto", mais ça ne change rien à mon souci.