Les fichiers

 
(Cliquez pour afficher la version PDF)

 

Pour sauvegarder des données, il peut être intéressant de les stocker dans des fichiers qu’il sera possible de lire ultérieurement et éventuellement modifier.

En premier, il faut ouvrir ou créer un fichier avec la fonction open(). Cette fonction prend en premier paramètre le chemin du fichier et en second paramètre le type d’ouverture :

fichier = open(”chemin”, ”type d’ouverture”)

On peut également préciser l’encodage du fichier :

fichier = open(”chemin”, ”type d’ouverture”, encoding=”utf-8”)

(UTF-8 est un encodage universel qui réunit les caractères utilisés par toutes les langues)

Les types d’ouvertures sont :

. ”r”, pour une ouverture en lecture (READ).

. ”w”, pour une ouverture en écriture (WRITE), à chaque ouverture le contenu du fichier est écrasé. Si le fichier n’existe pas python le crée.

. ”a”, pour une ouverture en mode ajout à la fin du fichier (APPEND). Si le fichier n’existe pas python le crée.

. ”b”, pour une ouverture en mode binaire.

. ”t”, pour une ouverture en mode texte.

. ”x”, crée un nouveau fichier et l’ouvre pour écriture.

 

Pour vérifier que l’ouverture du fichier se fait correctement, il faut traiter une exception de type Exception (elle peut fournir une description de l’erreur) :

Résultat dans la fenêtre Python shell :

 

Après ouverture du fichier et une fois les instructions sur le fichier terminées, il faut le fermer. Pour cela, on utilise la méthode close() :

fichier.close()

 

. Lecture d’un fichier

– Pour afficher tout le contenu d’un fichier, on peut utiliser la méthode read sur l’objet fichier :

Résultat dans la fenêtre Python Shell :


L’objet de type file est un objet qui peut se comporter comme une liste, ce qui permet d’utiliser également une boucle for :

Attention, lorsque l’on récupère une ligne d’un fichier, c’est une chaîne de caractères qui se termine par le caractère ’n’ de fin de ligne.

Ou bien simplement, la méthode readline() :

Ces deux façons de lire un fichier donnent cet affichage dans la fenêtre Python Shell :

 

. Ecrire dans un fichier

Pour écrire dans un fichier, il faut au préalable l’ouvrir ou le créer en mode ”w”, ”a” ou ”x”.

Résultat dans la fenêtre Python Shell :


A noter que pour le monde d’ouverture ”a”, pour écrire à la ligne, on peut utiliser le saut de ligne n :

Résultat dans la fenêtre Python Shell :

 

. Autre méthode d’ouverture de fichiers

Une ouverture de fichiers avec le mot clé with est également possible et cette méthode présente l’avantage de ne pas être obligé de fermer le fichier après traitement par le programme.

Résultat dans la fenêtre Python Shell :

 

Remarque :

Si l’on ne précise pas l’emplacement où l’on veut créer un fichier, celui-ci sera créé dans le répertoire courant (en général, dossier du script python).

 

. Synthèse sur la manipulation des fichiers

Le script ci-dessous résume les principales manipulations qu’il est possible d’effectuer avec un fichier :

Les taches effectuées par la fonction ManipFichier() dépendent des  arguments de la fonction.
En effet, après avoir vérifié que l’ouverture du fichier, dont le chemin est en argument, se fait correctement (structure try except), le fichier est soit lu, soit créé et mis à jour, soit ouvert et mis à jour, en fonction des valeurs des arguments mode et text.

Résultats dans la fenêtre Python shell :

 

. Exemple d’application

Maintenant que nous savons sauvegarder des données et définir des fonctions, nous allons pouvoir modifier le programme de création d’inventaire de façon à pouvoir enregistrer les modifications qui lui sont apportées à l’aide de fonctions définies pour chaque action sur l’inventaire.

Résultats dans la fenêtre Python Shell :