On va se simplifier la vie pour l'année prochaine : on enregistre et on charge le résultat du tirage dans un fichier JSON ! :)

This commit is contained in:
Benjamin Renard 2023-11-26 16:52:53 +01:00
parent e84a57dad0
commit cd673302eb

View file

@ -1,7 +1,11 @@
#!/usr/bin/python #!/usr/bin/python
import datetime
import json
import random import random
import sys
annee = datetime.date.today().year
participants = [ participants = [
'Maman', 'Maman',
'Papa', 'Papa',
@ -21,17 +25,16 @@ on_evite = {
'Didi': 'Johnny', 'Didi': 'Johnny',
} }
annee_passee = { # On charge le résultat de l'année dernière
'Nico': 'Ben', nom_fichier = sys.argv[1] if len(sys.argv) > 1 else f"{annee-1}.json"
'Didi': 'Nico', try:
'Mémé': 'Papa', with open(nom_fichier, "r", encoding="utf-8") as fd:
'Maman': 'Mémé', annee_passee = json.load(fd)
'Charlotte': 'Ludo', print(f"Résultat de l'an passée chargé depuis le fichier {nom_fichier} :")
'Johnny': 'Charlotte', print("\n".join([f"- {offre} => {recois}" for offre, recois in annee_passee.items()]))
'Papa': 'Didi', except FileNotFoundError:
'Ludo': 'Maman', print(f"Échec de chargement du tirage de l'an passé depuis le fichier {nom_fichier}.")
'Ben': 'Johnny', sys.exit(1)
}
class EchecTirage(Exception): class EchecTirage(Exception):
pass pass
@ -69,6 +72,7 @@ def tirage(nb_tentatives_max=99):
return result return result
# On procède au tirage # On procède au tirage
print("On procède au tirage... Suspense !")
result = None result = None
while not result: while not result:
try: try:
@ -77,6 +81,13 @@ while not result:
print("Échec du tirage, on recommence !") print("Échec du tirage, on recommence !")
result = None result = None
print("Résultat du tirage :") # On affiche le résultat
print("Résultat du tirage pour l'année {annee} :")
for offre, recois in result.items(): for offre, recois in result.items():
print(f" - {offre} -> {recois}") print(f" - {offre} -> {recois}")
# On enregistre le tirage pour l'année passée
nom_fichier = f"{annee}.json"
with open(nom_fichier, "w", encoding="utf-8") as fichier:
fichier.write(json.dumps(result, indent=2, ensure_ascii=False))
print(f"Résultat enregistré dans le fichier {nom_fichier}.")