Académique Documents
Professionnel Documents
Culture Documents
Ce sont les données enregistrées sur un support non volatile. Pour l’utiliser il faut l’ouvrir
d’abord dans le mode convenable.
Création et ouverture d’un fichier
Nom_logique = open(nom_fichier_physique , mode, encoding) avec le mode est :
- ‘r’ (read) le mode lecture pour en lire, génère une erreur s’il n’existe pas.
- ‘w’ (write) le mode écriture pour y écrire, crée le fichier s’il n’existe pas.
- ‘a’ (append) le mode append pour l’ajout à la fin, crée le fichier s’il n’existe pas.
- ‘x’ crée le fichier et affiche une erreur s’il existe déjà.
Python utilise les fichiers en mode texte par défaut (mode t). Pour les fichiers binaires, il faut
préciser le mode b. On utilise aussi le mode b pour que les données du fichier ne soient pas
affichées.
Le paramètre optionnel encoding assure les conversions entre les types byte, stocké dans le
fichier sur le disque, et le type str, manipulé lors des lectures et écritures.
Exemples : ouverture en mode par défaut (texte).
f1 = open("path/monFichier_1","r", encoding='utf8') #"r" mode lecture du
#fichier dans le répertoire indiqué
#le encoding='utf8' permet d’utiliser le contenu codifié dans un
#langage non latin comme l’arabe, le chinois, etc
f2 = open("monFichier_2","w", encoding='utf8') # "w" mode écriture.
# Ecrase l’ancien contenu s’il existe et le crée s’il n’existe pas
f3 = open("monFichier_3","a", encoding='utf8') #"a" mode ajout et se
#positionne à la fin du fichier
f4 = open("monFichier_4","wt") # "wt" mode écriture texte
f5 = open("monFichier_5","wb") # "wb" mode écriture binaire
Page 1
Lecture d’un fichier
Les instructions qui permettent de lire les données à partir d’un fichier sont :
Nom_fich.read() : lit tout le contenu à partir de la position courante du curseur. Si on met un
entier n entre les (), il lit n caractères à partir de la position courante
Nom_fich.readline() : lit le contenu à partir de la position courante du curseur jusqu’au
premier caractère de fin de ligne ou bien au caractère \n
Nom_fich.readlines() : lit la liste des lignes (des chaînes) du fichier à partir de la position
courante
Exemple
file1 = open("myfile.txt","r+")
print(file1.readlines())
print('1',file1.readlines())#n'affiche rien du tout car le curseur est posi
tionné à la fin du fichier
file1.seek(0) #repositionner le curseur au début du fichier
print('2- ',file1.readlines()) #affiche le contenu à partir du début
file1.seek(10) #avance de 10 octets par rapport au début
file1.read(5) #affiche les 5 caractères suivants
print("3- ",file1.readlines()) #affiche à partir de la dernière position
jusqu’à la fin du fichier
file1.close()
Parcours d’un fichier sans open ni close
f = open("fichtest.txt", "r")
for ligne in f:
print(ligne)
Ouverture / lecture et fermeture en une seule instruction
with open(nom_fichier) as alias: with open(nom_fichier) as alias:
print(alias.readlines()) liste = alias.readlines()
Exemple
with open("fichtest.txt") as f:
print(f.readlines())
with open("fichtest.txt") as f:
print(f.read())
Autres méthodes sur les fichiers
Nom_fich.closed() donne True si le fichier est fermé
Nom_fich.tell() donne le numéro de l’octet sur lequel le curseur est positionné.
import os
os.rename(source, destination)
Autres méthodes pour écrire sur les fichiers : le package pickle
Python Pickle est utilisé pour sérialiser et dé-sérialiser une structure d'objet python. Tout objet
python peut être modifié afin qu'il puisse être enregistré sur le disque. Dans un premier temps,
la bibliothèque Python pickle sérialise l'objet, puis convertit l'objet en un flux de caractères
afin que ce flux de caractères contienne toutes les informations nécessaires pour reconstruire
l'objet dans un autre script python. Il est presque l’équivalent du format JSON (Java Script
Object Notation).
Les étapes :
Ouvrir le fichier en mode écriture binaire « wb »
Page 2
Ecrire sur le fichier : pickle.dump(Objet, nom_fichier, mode)
o Le premier paramètre est l’objet à écrire (entier, chaîne de caractère, liste, tuple, set ou
dictionnaire).
o Le second contient le nom du fichier physique.
o Le troisième est optionnel représente le mode qui est
pickle.HIGHEST_PROTOCOL ou pickle.DEFAULT_PROTOCOL. Par défaut c’est le second.
Fermer le fichier par nom_fichier.close()
Exemple
import pickle
# On suppose qu'on a un dictionnaire D
# ouvrir le fichier en mode binaire
fichier = open('fichierDict', 'wb')
# dump (écrire) la structure de donnée dans le fichier
pickle.dump(D, fichier)
# Fermer le fichier
fichier.close()
Application
Sauvegardez le dictionnaire d et la liste e, donnés ci-dessous, dans un fichier puis lire et
afficher ces objets à partir du fichier.
d={5:[3,4,9],'c':14}
e=[10,20,30]
Réponse
import pickle
d={5:[3,4,9],'c':14}
e=[10,20,30]
fichier = open('fichierDict', 'wb')
# dump (écrire) la structure de donnée dans le fichier
pickle.dump(d, fichier)
pickle.dump(e, fichier)
# Fermer le fichier
fichier.close()
Résultat
d1 =
{5: [3, 4, 9], 'c': 14}
e1 =
[10, 20, 30]
Page 3