Lecture et écriture binaire d'un dictionnaire dans un fichier
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:
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.