From cd673302eb5e06fef7bdd22adfd65cb53b96825f Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Sun, 26 Nov 2023 16:52:53 +0100 Subject: [PATCH] =?UTF-8?q?On=20va=20se=20simplifier=20la=20vie=20pour=20l?= =?UTF-8?q?'ann=C3=A9e=20prochaine=20:=20on=20enregistre=20et=20on=20charg?= =?UTF-8?q?e=20le=20r=C3=A9sultat=20du=20tirage=20dans=20un=20fichier=20JS?= =?UTF-8?q?ON=20!=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tirkdo.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/tirkdo.py b/tirkdo.py index d1a3d4b..09b94a4 100644 --- a/tirkdo.py +++ b/tirkdo.py @@ -1,7 +1,11 @@ #!/usr/bin/python +import datetime +import json import random +import sys +annee = datetime.date.today().year participants = [ 'Maman', 'Papa', @@ -21,17 +25,16 @@ on_evite = { 'Didi': 'Johnny', } -annee_passee = { - 'Nico': 'Ben', - 'Didi': 'Nico', - 'Mémé': 'Papa', - 'Maman': 'Mémé', - 'Charlotte': 'Ludo', - 'Johnny': 'Charlotte', - 'Papa': 'Didi', - 'Ludo': 'Maman', - 'Ben': 'Johnny', -} +# On charge le résultat de l'année dernière +nom_fichier = sys.argv[1] if len(sys.argv) > 1 else f"{annee-1}.json" +try: + with open(nom_fichier, "r", encoding="utf-8") as fd: + annee_passee = json.load(fd) + print(f"Résultat de l'an passée chargé depuis le fichier {nom_fichier} :") + print("\n".join([f"- {offre} => {recois}" for offre, recois in annee_passee.items()])) +except FileNotFoundError: + print(f"Échec de chargement du tirage de l'an passé depuis le fichier {nom_fichier}.") + sys.exit(1) class EchecTirage(Exception): pass @@ -69,6 +72,7 @@ def tirage(nb_tentatives_max=99): return result # On procède au tirage +print("On procède au tirage... Suspense !") result = None while not result: try: @@ -77,6 +81,13 @@ while not result: print("Échec du tirage, on recommence !") 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(): 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}.")