Translate

samedi 27 janvier 2018

[ PYTHON ] - Créer votre propre type de fichier (ex: "mon_texte.juju")

Cet article est tiré de mon livre.

6.5 Ecrire dans un fichier binaire

Pourquoi écrire dans un fichier binaire ? C’est simple, dans un fichier texte vous ne pouvez écrire que des chaines de caractères, mais imaginez que vous avez une classe Personne qui enregistre le nom et l’age d’un joueur (pour un jeu vidéo par exemple) et que vous devez sauvegarder ses données. 

Ecrire dans un fichier en binaire permet d’écrire cet objet et de le récupérer tel quel sans vous soucier de comment le formatter pour pouvoir le récupérer plus tard. Pour cela nous allons utiliser le module ‘pickle’ qui va grandement nous faciliter le travail. 

Regardez le code, je vous le détaille ensuite :



Je commence par importer ‘pickle’. Pour cet exemple j’ai créé une classe Personne, mais vous pouvez le faire avec ce que vous voulez.

Suite du code :




Vous remarquerez l’extension du fichier ( ‘perso’). C’est moi qui l’ai choisi. Vous pouvez mettre l’extension que vous voulez vous aussi (ce sera votre propre extension). Bien sur le mode d’ouverture du fichier est ici ‘wb’ puisque c’est en écriture et sur du binaire.

Je crée 2 variables : nom et age pour les récupérer quand l’utilisateur les rentrera au clavier. De la ligne 41 à 44 c’est la récupération demandée à l’utilisateur.

Je stocke les données dans un objet de ma classe Personne que je nomme ‘p’.

La partie nouvelle commence à la ligne 47, ou j’utilise la classe Pickler du module pickle et je lui donne en argument mon fichier. Je nomme cet objet ‘data’.

Puis j’envoie à la méthode ‘dump’ de mon objet ‘data’ mon objet ‘p’ en argument. Ce qui aura pour effet de copier l’objet ‘p’ dans le fichier.

C’est tout. Je lance l’exécution du code ( voir capture suivante) :



A la fin de l’exécution du code, l’objet est copié dans le fichier ‘mon_texte.perso’ dont je vous montre un aperçu :




Illisible. Normal nous essayons d’afficher du binaire. On pourrait le lire avec logiciel qui lit de l’hexadécimal. Mais ça n’a pas d’intérêt dans ce chapitre.
Voyons maintenant comment lire les données d’un fichier binaire.

6.6 Lire dans un fichier binaire
Pour lire les données, regardez le code :




Premièrement le mode d’ouverture du fichier est ‘rb’. Ensuite vous remarquerez que nous n’utilisons pas ‘Pickler’ mais ‘Unpickler’ cette fois. Puis au lieu d’utiliser ‘dump’ nous utilisons ‘load’ et bien entendu nous n’avons aucun argument à lui envoyer.

Je me contente ensuite d’afficher la méthode ‘Hello’ que j’avais créé dans ma classe mais, j’aurais pu utiliser les attributs ‘name’ et ‘age’ si j’avais voulu.

Exécutons le code :

C’est fait. Nous savons maintenant, lire et écrire dans un fichier en binaire.




J'espère que ce court article vous a plu et je vous invite à le partager.

Aucun commentaire:

Enregistrer un commentaire