Je suis en train de programmer un Jeu de pendus mais une erreur ce produit quand je lance le programme.
Voici le code :
#-*-coding:UTF-8 -*
# Fichier compris avec le jeu :
# - donnees.py
# - pendu_mod.py
############# Importation des modules utiles #############
import os
import pickle
###### On se déplace dans le bon répertoire courant ######
os.chdir("D:/Anakonda/Jeu du pendu")
####################### Démmarrage #######################
print(">>>Démarrage en cour///")
try: # On essaye d'ouvrir le fichier donnees.py
with open('donnees','rb') as fichier:
mon_depickler = pickle.Unpickler(fichier)
premiere = mon_depickler.load()
except FileNotFoundError: # Si il n'existe pas, on l'indique à la variable 1er
premiere = False
if premiere == False: # Si donnees.py n'existe pas, on le créer
with open('donnees','wb') as fichier:
mon_pickler = pickle.Picler(fichier)
premiere = True
liste_mots = [
"calculée", "odieuses", "voudrait", "locution", "craillât", "transmua", "emportai", "pantoums", "targuera", "dégommes",
"inculpés", "enquêtas", "bondîmes", "biaisait", "pêcherez", "ovalises", "fuguasse", "clignent", "grailler", "ozonisée", "fichasse",
"hourdées", "denteler", "dépulpât", "grognais", "gastrite", "bourrais", "biopsies", "épieriez", "désossés", "crucifia", "épaulera"
]
score = {}
mon_pickler.dump(premiere)
mon_pickler.dump(liste_mots)
mon_pickler.dump(score)
print("Fichier créer avec succée")
with open('donnees','rb') as fichier: # On récupére les variable de donnees
mon_depickler = pickle.Unpickler(fichier)
liste_mots = mon_depickler.load()
liste_mots = mon_depickler.load()
score = mon_depickler.load()
################################# Début du Jeu #################################
print("Etablishing communication...///")
print(">>>start transmition :")
print(" /dev/: Bienvenue dans ce programme.")
print(" /dev/: Nous allons jouer au jeu du pendu")
print(" /dev/: Donne moi ton nom pour les highscores")
nom = input(" /guest_1/: ") # On demmande à l'utilisateur son nom
print("end transmition///")
print(">>>Searching for registrated score///")
i = 0
for cle, valeur in score.items(): # On regarde si l'utilisateur a déja joué
aucun_pseudo = True
if cle == nom: # Si oui, on lui montre son score
aucun_pseudo = False
print(">>>Score found///")
print(">>>{} = {}///".format(cle, valeur))
Et voici l'exception relever :
Traceback (most recent call last):
File "D:\Anakonda\Jeu du pendu\Pendu.py", line 23, in <module>
premiere = mon_depickler.load()
EOFError: Ran out of input
Quelqu'un pourrait-il me dire as quoi correspond l'erreur et, éventuellement, me dire comment la fixer ?
Donc dans l'exo on a trois fichier donnée.py fonction.py et pendu.py et tu essayes de récupérer tes données de ton fichier.py comme sa ? Ce n'est pas comme sa qu'on importe un fichier.py. Tu devrais relire l'intégralité du cours sur les fichiers car tu n'as pas compris comment les utiliser on dirait. Pour importer les donées de ton fichier donnée.py on utilise ici cette méthode (Je sais pas mais je pense pas qu'il y en ai d'autres) :
La forme avec l'asterisque peut provoquer des problèmes si deux variables ou deux fonctions ont le même nom. Et comme ça se fait sans message d'erreur, ça va provoquer des problèmes difficiles à debug, surtout pour un débutant.
Salut, je pense avoir trouvé l'origine de ton problème.
premièrement ton fichier "donnees.py" n'est pas un fichier de code source python mais un fichier de donnés, aucune raison donc de lui coller une extension .py.
Ensuite, ligne 39 tu a une faute de frappe (Picler au lieu de Pickler). Une erreur est donc levée si cette ligne est executé, cad si le fichier "donnees" n'est pas encore créé. Le problème, c'est que cette erreur survient juste après la création du fichier, et avant que tu écrives dedans. En gros tu as créé le fichier mais celui-ci est vide : d'où l'erreur que tu as ensuite quand tu essayes d'en lire le contenu.
Edit :
JaurelFosset a écrit:
D'accord mais la commande import est pas réservé a l'importation de module. Je cherche juste a enregistré un objet dans un fichier et le ressortir.
Si si, import sert exclusivement à importer des modules/packages
- Edité par __Nicolas__ 16 janvier 2019 à 20:56:21
Blond, bouclé, toujours le sourire aux lèvres...