1. [LES FICHIERS EN PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 6 : Les fichiers en Python 1
Chapitre 6 : Les fichiers en Python
Manipulation des fichiers textes et binaires : Ouverture, lecture, écriture et
fermeture
Manipulation des fichiers
On appellera fichier toute collection de données (textuelles ou binaires) enregistrée
sur un support physique (un disque dur, une clé usb, etc). Un fichier peut être
accessible en lecture seule, ou en lecture/écriture. Pour pouvoir être consulté et/ou
modifié, il doit être ouvert d’abord, puis fermé ensuite (mais Python se charge
souvent de fermer le fichier lui-même quand tout est terminé).
Dans la suite, on suppose qu’on se place uniquement dans le dossier courant. Les
fichiers seront donc désignés par leur nom, simplement, sans indication d’un chemin
d’accès. Mais si on veut un contrôle précis sur les dossiers, on importera le module os
(operating system) qui fournit quelques fonctions utiles :
os.getcwd() : renvoie le dossier actuel
os.chdir(‘chemin’) : désigne un nouveau dossier de travail
a. Manipulation des fichiers textes
Ouverture :
varFichier=open(NomFichier,ModeTypAccess)
La commande nécessite deux paramètres pour créer une variable en mémoire qui
représente le fichier physique nommé NomFichier :
Le nom physique du fichier sur le support qui est généralement stocké dans le
répertoire courant de Python
Le mode d’accès : Trois modes sont possibles
o w: ‘writing’ : si le fichier existe déjà son contenu sera remplacé par un
nouveau contenu, dans le cas contraire, on crée un fichier en mode
écriture pour y enregistrer du texte.
o r: ‘reading’ : Le mode lecture : le fichier est ouvert pour qu’il soit
consulté
o a :’append’ : C’est un mode semblable au mode ‘w’ sauf qu’on
n’écrase pas l’ancien contenu du fichier, mais on ajoute à la fin du
fichier de chaînes de caractères nouvelles
Le type d’accès
o ‘t’ : le fichier est considéré comme une suite de caractères ascii : c’est
le mode texte
o ‘b’ : le fichier est considéré comme une suite d’octets : c’est le mode
binaire
Exemple :
2. [LES FICHIERS EN PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 6 : Les fichiers en Python 2
Ecriture :
varFichier.write(chaine_de_caracteres)
La commande write enregistre la chaine dans le fichier et retourne la longueur de
cette dernière.
Il faut toujours penser à fermer le fichier à la fin de son utilisation surtout qu’il est
ouvert en mode ‘w’ ou ‘a’ pour que les modifications soient enregistrées. La
commande closed permet de tester si le fichier est fermé avec succès, son résultat
est booléen.
Consultant le fichier créé ! Les chaines sont écrites sur une même ligne ! Pour écrire
sur plusieurs lignes, il faut ajouter le caractère ‘n’ à la fin de chaque chaîne au
niveau de la commande write :
On peut utiliser un conteneur pour stocker des chaînes dans un fichier :
3. [LES FICHIERS EN PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 6 : Les fichiers en Python 3
Ecriture en fin de fichier :
Lecture :
Avant de pouvoir lire le contenu d’un fichier, on doit l’ouvrir en mode lecture texte
avec la commande open(nomFichier,’rt’). La consultation du contenu peut
s’effectuer de trois manières :
varFichier.read() : Affiche le contenu intégral du fichier :
varFichier.readline : lit le fichier ligne par ligne, à chaque fois qu’on rencontre
le caractère ‘n’, on s’arrête :
Autrement :
varFichier.readlines() : retourne une liste constituée des lignes du fichier :
4. [LES FICHIERS EN PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 6 : Les fichiers en Python 4
b. Manipulation des fichiers binaires
La sérialisation (l’enregistrement) des variables de tout type en Python est possible.
Ainsi, aucune variable ne sera effacée dès qu’on quitte le prompt et ce grâce au
module pickle. On ne parle plus de fichiers texte, mais de fichiers de flux binaires.
Ouverture :
o varFichier=open(nomFichier,’wb’) : ouvre un fichier binaire en mode
écriture
o varFichier=open(nomFichier,’rb’) : ouvre un fichier binaire en mode
lecture
Ecriture :
o On utilise la commande dump du module pickle :
pickle.dump(objet,varFichier) à condition que le module pickle est
déjà chargé, l’objet python est déjà créé et le fichier est déjà ouvert
en mode écriture binaire :
Lecture :
o On utilise toujours le module pickle, spécifiquement la méthode load.
On peut utiliser cette méthode autant que l’on veut à condition de ne
pas dépasser la taille du fichier, sinon une exception EOFError sera
levée :
o Pour éviter cette exception, on emploie les clauses try..except
5. [LES FICHIERS EN PYTHON] ESPRIMS’
Mariem ZAOUALI | Chapitre 6 : Les fichiers en Python 5