Garder l'historique des valeurs sur le disque
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Pour pouvoir comparer les différentes valeurs du prix au fur et à mesure qu'on exécute notre script,il va falloir garder les informations de prix quelque part.
00:00:08 :Dans mon cas, je ne vais pas me compliquer la vie.On pourrait passer par des bases de données et des trucs un peu plus complexes,mais c'est beaucoup plus pénible à mettre en place.
00:00:15 :Et dans ce cas-ci, on a juste une valeur de prix à stocker.Je vais garder également la date pour savoir à quel moment on a récupéré cette valeur.
00:00:22 :Mais c'est vraiment juste deux informations, donc je ne vais pas me compliquer la vie.Et je vais tout simplement stocker ça dans un fichier JSON qui sera dans le même dossier que le dossier du script.
00:00:30 :Donc c'est ce qu'on va faire dans cette partie.On va créer une fonction qui va nous permettre d'écrire cette valeur dans un fichier JSON.Donc ce que je vais commencer par faire, c'est utiliser deux bibliothèques.
00:00:40 :La bibliothèque DateTime qui va me permettre de récupérer la date et l'heure au moment où j'écris la valeur.Et la bibliothèque PathLib qui va me permettre de récupérer le chemin vers le fichier JSON en fonction du chemin du script.
00:00:51 :Donc si vous avez déjà vu des formations que j'ai faites, vous devez être habitué.On va faire une constante ici qui va être égale au chemin du fichier du script qui est dans la variable File.
00:01:02 :On va créer un objet Path avec cette variable ici.Donc qui va être tout simplement le chemin absolu vers le fichier qu'on exécute.Donc le fichier main.py.
00:01:12 :On va récupérer le dossier parent avec parent.Et on va concatener tout ça avec le nom du fichier dans lequel on va écrire qui est price.json.
00:01:20 :Donc on a cette variable ici.Et on peut ensuite créer une fonction qui va écrire ces données à l'intérieur de ce fichier JSON.Donc je vais faire la fonction, je vais l'appeler tout simplement writePriceToFile.
00:01:31 :Et on va lui donner une valeur en nombre entier.Donc un paramètre Price ici.Je mets une annotation de type pour spécifier qu'on veut récupérer un nombre entier, un Integer.
00:01:40 :Et on va déjà vérifier si le fichier existe.Parce que s'il existe, on veut modifier, on veut ajouter cette valeur au fichier.Donc je vais tout simplement faire un if PriceFilePath.exist.
00:01:51 :Donc si le fichier existe déjà, on va lire les données qu'il contient pour ajouter à ces données.Donc on va faire le fameux withOpen.Et on va ouvrir le PriceFilePath en mode read en tant que f.
00:02:02 :Et on va également avoir besoin du module JSON.Donc je crois que je ne l'ai pas importé.Voilà on va l'importer ici.Donc import JSON.
00:02:08 :Puisque avec ce module on va lire les données.Donc je vais récupérer ça dans une variable data.Et on va faire un JSON.load du fichier, donc f, que j'ai récupéré dans cette variable ici.
00:02:16 :Si ce n'est pas le cas, si le fichier n'existe pas.Et bien on va tout simplement créer une valeur par défaut.Donc une liste vide sur cette variable data.
00:02:23 :Pour pouvoir ajouter la première valeur de prix dans cette liste.Donc on va faire un data.append.Et on va ajouter un dictionnaire qui va contenir deux valeurs.
00:02:33 :Donc la première valeur ça va être le prix.Qui va être égal à la valeur qu'on envoie en argument à price ici.Et la deuxième valeur ça va être tout simplement un timestamp.
00:02:41 :Que je vais récupérer à partir de dateTime.now.Et on va faire isoformat.Donc c'est un format spécifique qui, vous allez le voir, contient toutes les informations dont on a besoin.
00:02:51 :Donc la date, l'heure, etc.Et voilà, on a besoin juste de ça.Donc le prix, le timestamp, qui va être créé automatiquement à partir de cette variable now.
00:03:00 :Au moment où on écrit le fichier.Et ce qu'il ne reste plus qu'à faire maintenant, c'est réécrire ces nouvelles informations à l'intérieur du fichier.Donc pour ça on va refaire un withOpen.
00:03:09 :Donc on va ouvrir le fichier cette fois-ci en mode write.Dans une variable f.Et on va faire cette fois-ci un json.dump.Pour écrire les datas dans le fichier avec un index de 4.
00:03:19 :Pour que ce soit bien formaté.Et voilà, donc ça allait un petit peu vite.Mais c'est des choses assez classiques ici.Je vais pouvoir ensuite tester cette fonction pour m'assurer que ça fonctionne.
00:03:27 :Donc je vais commenter cette ligne là.Et je vais appeler ma fonction write.Donc write price to file.Et on va donner un prix de 200 par exemple.
00:03:34 :Je lance le script et on va aller voir si le fichier est bien là.Donc il est bien ici.Et on a bien le premier price avec 200 avec le timestamp.
00:03:41 :Donc comme je vous disais on a bien la date.2024.01.20.Et ensuite l'heure à laquelle j'enregistre.Et il est effectivement midi pile à l'heure où je lance ce script.
00:03:50 :On va le relancer une deuxième fois avec une autre valeur.Pour voir si ça fonctionne bien.Si on arrive à l'ajouter.Et là on a bien 150 avec l'heure qui a été mis à jour.
00:03:58 :Donc là on avait 28 secondes.Là on est à 47 secondes.Et on a bien mis à jour.Tout ça se met à la suite.
00:04:03 :Et avec le index de 4.On a bien qu'il est tout indenté correctement.Pour que ce soit facilement visible.Donc voilà pour cette fonction qui nous permet d'écrire les données.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.