Formation Python
Les fichiers en Python
Formateur
Yassine Ben Salah
Formation Python
Les fichiers en Python
Formateur : Yassine Ben Salah
2
Les fichiers en Python
Création d’un fichier
Pour créer un nouveau fichier en Python, on utilise la
méthode open() avec l’un des paramètres suivants :
“x” : Ce mode d’ouverture permet de créer un
fichier s’il n’existe pas et renvoie une erreur si le
fichier existe
“a” : (Append) : permet de créer un fichier si le
fichier spécifié n’existe pas et mettre le curseur à
la fin du fichier pour l'ajout si le fichier existe
“w” : (Write) : permet de créer un fichier si le
fichier spécifié n’existe pas. Si le fichier existe, son
contenu sera écrasé
Formateur : Yassine Ben Salah
3
Les fichiers en Python
# Création d'un fichier
''' x : Ce mode d’ouverture permet de créer un fichier s’il n’existe
pas et renvoie une erreur si le fichier existe '''
f = open ("test1.txt", "x")
''' a : (Append) : permet de créer un fichier si le fichier spécifié
n’existe pas, et mettre le curseur à la fin du fichier pour l'ajout '''
f = open ("test2.txt", "a")
''' w : (Write) : permet de créer un fichier si le fichier spécifié
n’existe pas. Si le fichier existe, son contenu sera écrasé '''
f = open ("test3.txt", "w")
Formateur : Yassine Ben Salah
4
Les fichiers en Python
Ouverture d’un fichier
En langage Python, il n’est pas nécessaire
d’importer une bibliothèque pour lire et écrire sur les
fichiers.
La fonction open() intégrée dans Python permet
d’obtenir un objet fichier (Pyhon file object).
La fonction open() permet l’ouverture d’un fichier
Id_fichier = open(nom_fichier, mode_ouverture)
Formateur : Yassine Ben Salah
5
Les fichiers en Python
Modes d’ouverture d’un fichier
Le mode ‘r’ : ouverture d’un fichier existant en
lecture seule
Le mode ‘w’ : ouverture en écriture seule, écrasé
s’il existe déjà et crée s’il n’existe pas,
Le mode ‘a’ : ouverture et écriture en fin du fichier
avec conservation du contenu existant
Le mode ‘r+’ , ‘a+’ , ‘w+’ : ouverture en lecture et
écriture
Le mode ‘b’ : ouverture en mode binaire
Formateur : Yassine Ben Salah
6
Les fichiers en Python
Le mot clé with
Il existe une autre syntaxe qui permet d’éviter le
problème en cas d’oubli du fermeture de fichier. On
peut utiliser le mot clé with
with open (nom_fichier, mode_ouverture) as Id_fichier :
# Opérations sur le fichier
Formateur : Yassine Ben Salah
7
Les fichiers en Python
Ouverture et lecture d’un fichier
Pour lire un fichier existant, on utilise la méthode
read()
La méthode read() permet de lire le contenu total ou
partiel d’un fichier, après être ouvert avec la méthode
open().
contenu = nom_fichier.read()
Formateur : Yassine Ben Salah
8
Les fichiers en Python
# Lecture du contenu total d'un fichier
f = open("test.txt" , "r") # Ouverture du fichier pour lecture
contenu = f.read()
# lecture pour récupérer le contenu de fichier
print(contenu)
# Affichage du contenu
f.close()
# Fermeture du fichier
N.B. : Le fichier qu’on veut lire et le fichier contient
le script doivent être dans le même emplacement, si
non il faut indiquer son emplacement
Formateur : Yassine Ben Salah
9
Les fichiers en Python
# Lecture du contenu total d'un fichier
# Autre syntaxe avec with
with open("test.txt" , "r") as f :
contenu = f.read()
print(contenu)
Formateur : Yassine Ben Salah
# Ouverture du fichier pour lecture
# lecture pour récupérer le contenu de fichier
# Affichage du contenu
10
Les fichiers en Python
Lecture partielle avec la méthode read()
La méthode read() peut être également utilisée
pour lire une partie du fichier seulement en
indiquant le nombre de caractère à lire entre
parenthèse
# Lecture du contenu partiel d'un fichier
f = open("test.txt" , "r") # Ouverture du fichier pour lecture
# lecture de 21 premiers caractères du contenu du fichier
ch = f.read(21)
print(ch)
f.close()
Formateur : Yassine Ben Salah
# Affichage du ch
# Fermeture du fichier
11
Les fichiers en Python
# Lecture du contenu partiel d'un fichier
f = open("test.txt" , "r")
# Ouverture du fichier pour lecture
# lecture des caractères entre [25:39]
ch= f.read()[25:39]
print(ch)
# Affichage du ch
f.close()
# Fermeture du fichier
Formateur : Yassine Ben Salah
12
Les fichiers en Python
Lecture séquentielle caractère par
caractère
La méthode read() pourra être utilisée aussi pour
effectuer une lecture séquentielle caractère par
caractère en utilisant la boucle for: ou bien la
boucle while:
Formateur : Yassine Ben Salah
13
Les fichiers en Python
# Lecture séquentielle caractère par caractère avec la boucle for
f = open("test.txt" , "r")
# Ouverture du fichier pour lecture
# lecture séquentielle caractère par caractère du contenu du fichier
contenu=""
for c in f.read() :
contenu = contenu + c
print(contenu)
f.close()
Formateur : Yassine Ben Salah
# Affichage du contenu
# fermeture du fichier
14
Les fichiers en Python
# Lecture séquentielle caractère par caractère avec la boucle while
f = open("test.txt", 'r')
contenu =""
while 1:
c = f.read(1)
if c =="":
break
contenu = contenu + c
print(contenu)
f.close()
N.B. : Après exécution de la fonction read(1), le curseur se trouve à la
position du caractère 2 , et la lecture débutera depuis le 2ème
caractère et ainsi de suite.
Formateur : Yassine Ben Salah
15
Les fichiers en Python
Lecture ligne par ligne avec la
méthode readline()
La méthode readline() permet de lire un fichier
ligne par ligne.
Cette méthode pointe sur la première ligne lors de
sa première exécution, ensuite sur la deuxième
ligne lors de sa seconde exécution et ainsi de suite
jusqu’à la Nème ligne
Formateur : Yassine Ben Salah
16
Les fichiers en Python
# Lecture ligne par ligne avec readline()
f = open("test.txt", 'r')
# Ouverture du fichier pour lecture
contenu=""
while 1:
ligne = f.readline()
# lecture d'une ligne
if (ligne == ""):
break
contenu = contenu + ligne
print(contenu)
# Affichage de la totalité des lignes
f.close()
# Fermeture de fichier
Formateur : Yassine Ben Salah
17
Les fichiers en Python
La méthode readlines()
La méthode readlines(), renvoie une liste
dont les éléments sont les lignes du fichier
Formateur : Yassine Ben Salah
18
Les fichiers en Python
# Lecture des lignes du fichier avec readlines()
f = open("test.txt",'r')
# Ouverture du fichier pour lecture
content = f.readlines()
# lecture des lignes du fichier avec readlines()
print(type(content))
# <class 'list'>
# readlines() renvoie une liste dont les éléments sont les lignes du fichier
print(content[0])
# Affichage de la première ligne
print(content[1])
# Affichage de la deuxième ligne
f.close()
# Fermeture de fichier
Formateur : Yassine Ben Salah
19
Les fichiers en Python
# Lecture des lignes du fichier avec readlines() en utilisant la boucle for
f = open("test.txt",'r') # Ouverture du fichier pour lecture
content = f.readlines() # lecture des lignes du fichier avec readlines()
# content est de type liste
for ligne in content :
# Affichage d’une ligne
print(ligne)
f.close()
# Fermeture de fichier
Formateur : Yassine Ben Salah
20
Les fichiers en Python
# Nombre de lignes d'un fichier
f = open("test.txt",'r')
# Ouverture du fichier pour lecture
content = f.readlines()
# lecture des lignes du fichier avec readlines()
# content est de type liste
''' Le nombre d'éléments de la liste content correspond au nombre de
lignes du fichier ''‘
print(len(content))
f.close()
Formateur : Yassine Ben Salah
# Affichage du nombre d'élément de la liste content
# Fermeture de fichier
21
Les fichiers en Python
# Lecture des lignes du fichier avec readlines() en utilisant la boucle for
# Autre méthode
f = open("test.txt",'r') # Ouverture du fichier pour lecture
content = f.readlines() # lecture des lignes du fichier avec readlines()
# content est de type liste
for l in range (len(content)) :
# Affichage d’une ligne
print(content[l])
f.close()
# Fermeture de fichier
Formateur : Yassine Ben Salah
22
Les fichiers en Python
Lecture d’un fichier à une position précise avec la
méthode readlines()
''' lecture d’un fichier depuis le caractère 10 jusqu’au
caractère 20 de la troisième ligne '''
f = open("test.txt",'r')
# Ouverture du fichier pour lecture
# lecture de la troisième ligne du fichier avec readlines()
ligne = f.readlines()[2]
''' extraction depuis le caractère 10 jusqu'au caractère 20 du
troisième ligne '''
res = ligne[9 : 20]
print(res)
f.close()
# Fermeture de fichier
Formateur : Yassine Ben Salah
23
Les fichiers en Python
Méthode seek()
La méthode seek() permet de sélectionner
une position précise pour lecture ou écriture
Formateur : Yassine Ben Salah
24
Les fichiers en Python
# Lire le fichier à partir de la 8ème position
f = open("test.txt",'r') # Ouverture du fichier pour lecture
f.seek(7)
# sélection de la position 8
content = f.read()
# lire le fichier à partir de la 8ème position
print(content)
# Affichage
f.close()
# Fermeture de fichier
Formateur : Yassine Ben Salah
25
Les fichiers en Python
Ouverture et écriture dans un fichier
Pour écrire dans un fichier existant, on doit ajouter l’un
des paramètres à la fonction open():
“w” : (Write) : écrasera tout contenu existant
“a” : (Append) : Permet d’ajouter à la fin du fichier
”r+” : Lecture et écriture sans écraser le contenu
existant
Pour écrire dans fichier ouvert en mode écriture, on
utilise la fonction write()
nom_fichier.write(contenu)
Formateur : Yassine Ben Salah
26
Les fichiers en Python
Ecriture avec conservation du contenu existant
# ouverture pour écriture avec conservation du contenu existant
f = open ("test.txt", "a") # a : append
# Ajouter un contenu à la fin du fichier
f.write ("\nPython peut être utilisé dans l’intelligence artificielle.")
f.close ()
# Fermeture de fichier
# ouvrir et lire le fichier après l’ajout
f = open ("test.txt", "r")
print (f.read())
Formateur : Yassine Ben Salah
27
Les fichiers en Python
# ouverture pour écriture avec conservation du contenu existant
# Autre syntaxe avec with
with open ("test.txt", "a") as f : # a : append
# Ajouter un contenu à la fin du fichier
f.write ("\nPython peut être utilisé dans l’intelligence artificielle.")
# ouvrir et lire le fichier après l’ajout
with open ("test.txt", "r") as f :
print (f.read())
Formateur : Yassine Ben Salah
28
Les fichiers en Python
Ouverture et écrasement du contenu existant
# ouverture pour écriture avec écrasement du contenu existant
f = open ("test.txt", "w") # w : ouverture et écrasement du contenu
# Ajouter un contenu au fichier
f.write ("le contenu de fichier est écrasé")
f.close ()
# Fermeture de fichier
# ouvrir et lire le fichier après l’ajout
f = open ("test.txt", "r")
print (f.read())
Formateur : Yassine Ben Salah
29
Les fichiers en Python
La méthode writelines()
La
méthode
writelines()
permet
d’ajouter une chaîne ou une liste de
chaîne à un fichier ouvert en mode
écriture
Formateur : Yassine Ben Salah
30
Les fichiers en Python
# Méthode writelines
f1 = open ("test1.txt", "w")
l = ["ligne1\n","ligne2\n", "ligne3\n"] # liste de chaînes
''' writelines permet d'ajouter une chaîne ou une liste de
chaines à un fichier '''
f1.writelines(l)
f1.close()
f1 = open ("test1.txt", "r")
print(f1.read())
f1.close()
Formateur : Yassine Ben Salah
31
Les fichiers en Python
Récapitulatif des méthodes Python associées
à un objet fichier
Méthode
Description
nomfichier.read(n)
Lit les n premiers caractères du fichier
nomfichier.readline()
Lit une seule ligne dans un fichier
nomfichier.readlines()
lit et renvoie la liste de toutes les
lignes du fichier
Formateur : Yassine Ben Salah
32
Les fichiers en Python
Méthode
Description
nomfichier.write(ch)
Ecrit la chaine ch dans le
fichier
nomfichier.writelines(séquence)
Ecrit une séquence (chaîne
ou liste de chaîne) dans le
fichier
nomfichier.tell()
Renvoie la position du
pointeur interne dans le
fichier
nomfichier.seek( )
Permet de repositionner le
pointeur dans le fichier
Formateur : Yassine Ben Salah
33
Les fichiers en Python
Méthode
nomfichier.next()
Description
Retourne la ligne suivante du fichier
nomfichier.seekable()
Vérifie si le fichier prend en charge
l’accès aléatoire. Renvoie True si oui.
nomfichier.truncate(n)
Tronque la taille du fichier. Si n est
fourni, le fichier est tronqué à n
octets, sinon tronqué à l’emplacement
actuel
nomfichier.fileno()
Retourne un descripteur entier d’un
fichier
Formateur : Yassine Ben Salah
34
Les fichiers en Python
Méthode
Description
nomfichier.flush()
Vide le tampon interne
nomfichier.isatty()
Renvoie true si le fichier est connecté
à un périphérique tty.
nomfichier.close()
Ferme un fichier ouvert
Formateur : Yassine Ben Salah
35
Les fichiers en Python
Copie d’un fichier dans un autre répertoire
# Copie d'un fichier dans un autre répertoire
# Le module os permet d’interagir avec le système d'exploitation
''' Le module shutil est un module utilitaire qui peut être utilisé pour :
copier, déplacer ou supprimer des fichiers ou des répertoires '''
import os
import shutil
source = "flowers.jpg"
# Le fichier à copier
target = ("c:/images/flowers.jpg")
# Le chemin du répertoire cible
shutil.copy(source , target)
Formateur : Yassine Ben Salah
# copier le fichier dans le répertoire cible
36
Les fichiers en Python
Déplacer un fichier dans un autre répertoire
# Déplacer un fichier dans un autre répertoire
# Le module os permet d’interagir avec le système d'exploitation
''' Le module shutil est un module utilitaire qui peut être utilisé pour :
copier, déplacer ou supprimer des fichiers ou des répertoires '''
import os
import shutil
source = "flowers.jpg"
target = ("c:/images/flowers.jpg")
# Le fichier à déplacer
# Le chemin du répertoire cible
shutil.copy(source , target)
# copier le fichier dans le répertoire cible
os.remove(source)
# supprimer le fichier du répertoire source
Formateur : Yassine Ben Salah
37