Cours Gestion des Fichiers en Programmation
Télécharger PDFLes fichiers
1. Définition
Dans tous les langages de programmation, on utilise la notion de fichier. Qui désigne un ensemble d'informations enregistrées sur un support (disquette, disque dur, etc.). Dans la majorité des langages de programmation, on distingue deux types de fichiers : Les fichiers textes et les fichiers binaires.- Les fichiers textes : les informations sont sous un format texte qui est lisible par n’importe quel éditeur de texte,
- Les fichiers binaires: les informations ne sont lisibles que par le programme qui les a conçus.
2. Gestion des fichiers
Les principales manipulations sur un fichier sont :- L'ouverture du fichier
- La lecture ou l’écriture d'un élément dans un fichier
- La fermeture du fichier.
2.1. Ouverture et fermeture des fichiers
▪ Ouverture d’un fichier
Tout fichier doit être ouvert avant de pouvoir accéder à son contenu en lecture et écriture. L’ouverture d’un fichier est réalisée par la fonction open selon la syntaxe suivante :Variable = open(nomFichier, mode)
- nomFichier : nom physique du fichier, exemple : "c:/monfichier.txt" ou "c:\\monfichier.txt"
- mode : caractère qui indique le mode d’ouverture,
- 'r' (read : lecture) : lecture seulement ; le fichier doit exister.
- 'w' (write : écriture) : écriture seulement. Si le fichier n’existe pas, il est créé. S’il existe, son ancien contenu est perdu.
- 'a' (append : ajout) : si le fichier existe déjà, il sera étendu. sinon, il sera créé.
- Variable : nom logique du fichier, c’est un objet via lequel on manipule les informations du fichier.
f1 = open("test1.txt", "r") # "r" mode lecture (read)
f2 = open("test2.txt", "w") # "w" mode écriture (write)
f3 = open("test3.txt", "a") # "a" mode ajout (append)
▪ Fermeture d’un fichier
La fermeture d’un fichier permet à d’autres programmes de lire ce que vous avez placé dans ce fichier.f1.close() # fermeture du fichier f1
2.2. Ecriture dans un fichier : méthode write()
L’écriture s’effectue toujours selon le même schéma.- création ou ouverture du fichier,
- écriture,
- fermeture.
>>> f = open("test.txt", "w")
>>> f.write("MPSI2 \nMPSI3 \nMPSI4 .")
19 #la méthode retoure le nombre de caractères écrits
>>> f.close()
Lorsqu’on regarde le contenu du fichier test.txt, on obtient (le caractère \n est un retour à la ligne).
MPSI2 MPSI3 MPSI4
Ecriture en mode "ajout"
>>> f = open("test.txt", "a") # ouverture du fichier en mode ajout, mode "a"
Exemple 3: Pour comprendre la différence entre ces deux modes d’ouverture, voici deux programmes.
Programme 1: (n’utilise pas le mode ajout)
>>> f = open("essai.txt", "w")
>>> f.write("première fois")
>>> f.close()
>>> f = open("essai.txt", "w")
>>> f.write("seconde fois")
>>> f.close()
# fichier essai.txt contient : seconde fois
Programme 2: (utilise le mode ajout)
>>> f = open("essai.txt", "w")
>>> f.write("première fois")
>>> f.close()
>>> f = open("essai.txt", "a")
>>> f.write("seconde fois")
>>> f.close()
# fichier essai.txt contient : première fois seconde fois
2.3. Lecture d’un fichier : méthodes read(), readline(), readlines()
La lecture d’un fichier permet de retrouver les informations stockées grâce à une étape préalable d’écriture. Elle se déroule selon le même principe, à savoir :- ouverture du fichier en mode lecture,
- lecture,
- fermeture.
▪ read(taille)
Pour lire la quantité de données contenues dans le fichier et les retourne en tant que chaîne de caractères. Quand taille est omise ou négative, le contenu entier du fichier est lu et retourné :>>> f.read()
▪ readline()
Lit une seule ligne à partir du fichier ; un caractère de fin de ligne (\n) est laissé à l'extrémité de la chaîne de caractères lue.>>> f.readline() Ceci est la première ligne du fichier.\n >>> f.readline() Deuxième ligne du fichier\n
▪ readlines()
Pour des fichiers qui ne sont pas trop gros, la méthode readlines() récupère la liste de toutes les lignes d’un fichier texte en une seule fois.>>> f.readlines() # lecture de toutes les lignes, placées dans une liste ['Ceci est la première ligne du fichier.\n', 'Deuxième ligne du fichier\n']Remarque : Un fichier texte ouvert en lecture possède également les propriétés d’un itérateur : on parcourt alors les lignes du fichier :
fichier = open("test.txt")
for ligne in fichier : # on parcourt les lignes
print(ligne)
fichier.close()