Ouverture et lecture des fichiers en Python

Le fichier qu'on souhhaite ouvrir avec Python, doit exister dans le même répertoire que le fichier du programme python sinon, l'adresse complète du fichier doit être écrite à la place du nom de fichier. Remarque: Le symbole r est placé avant le nom de fichier pour éviter que les caractères de la chaîne de nom de fichier ne soient traités comme des caractères spéciaux. Par exemple, s'il y a \ temp dans l'adresse du fichier, \ t est considéré comme le caractère de tabulation et une erreur d'adresse non valide est générée. Le r rend la chaîne brute, c'est-à-dire qu'il indique que la chaîne ne contient aucun caractère spécial. Le r peut être ignoré si le fichier se trouve dans le même répertoire et que l'adresse n'est pas placée.



1- Mode d'ouverture d'un fichier

En langage Python, il n’est pas nécessaire d’importer une bibliothèque pour lire et écrire sur des fichiers. Il s'agit d'opérations gérées nativement par le langage. La première chose à faire est d’utiliser la fonction open() intégrée de Python pour obtenir un objet fichier(Pyhon file object). La fonction open() ouvre un fichier d'une façon assez simple! Lorsque vous utilisez la fonction open(), elle renvoie un objet du type file object. Les objets file object, contiennent des méthodes et des attributs pouvant être utilisés pour collecter des informations sur le fichier que vous avez ouvert. Ils peuvent également être utilisés pour manipuler le dit fichier.

Un objet fichier crée par la méthode open(), est doté de certaines propriétés permettant de lire et écrire sur ce dernier. Sa syntaxe est:

f = open([nom du fichier], [mode ouverture])

[nom du fichier] est le nom du fichier qu'on souhaite ouvrir ou crée. Le mode d'ouverture comprend les paramètres suivants:

  • 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 '+' : ouverure en lecture et écriture
  • Le mode 'b' : ouverture en mode binaire

2-  Ouverture et lecture d'un fichier

Pour lire un fichier existant, plusieurs méthode sont disponible :

2.1- Lecture totale avec 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().

La syntaxe est :

Exemple: ouverture et lecture d'un fichier existant

f = open("myFile.txt", 'r')
contenu = f.read() # lecture du contenu
print(contenu) # impression du contenu
f.close() # fermeture du fichier

2.2- 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èses :

Exemple. lecture des 20 premiers caractères

f = open("myFile.txt", 'r') 
contenu = f.read(20) # lecture de 20 caractère du contenu du fichier 
print(contenu) # impression du contenu
f.close() # fermeture du fichier

Remarque 

Après exécution de la fonction read(n) ( n = nombre de caractères à lire), le curseur se trouve à la position n+1, et donc si on exécute la fonction une 2ème fois, la lecture débutera depuis le (n+1)ème caractère.

2.3-  Lecture séquentielle caractère par caractère

La méthode read() pourra être utilisé aussi pour effectuer une lecture séquentielle caractère par caractère en utilisant la boucle for:

for c in fichier.read()

Exemple: lecture séquentielle

f = open("myFile.txt", 'r') 
s="" 
for c in f.read():     
    s = s + c 
print(s)

La même opération peut être réalisée en utilisant la boucle while :

Exemple. lecture d'un fichier avec la boucle while

f = open("myFile.txt", 'r') 

s="" 
while 1:     
    c = f.read(1)       
    if c =="":         
        break     
    s = s + c 
print(s)

2.4 - Lecture ligne par ligne avec les méthodes readline() et readlines()

2.4.1- 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 à la n-ième exécution, elle pointe vers la n-ième ligne.

Exemple. lecture du fichier ligne par ligne

# -*- coding: utf-8 -*-  
f = open("myFile.txt", 'r') 
print(f.readline()) # affiche la ligne n°1
print(f.readline()) # affiche la ligne n°2





En combinant la méthode readline() avec la méthode while(), on peut lire la totalité des ligne d'un fichier :

Exemple. lecture de toutes les lignes avec readline()

f = open("myFile.txt", 'r') 
s="" 
while 1:     
    ligne = f.readline()     
    if(ligne == ""):         
      break     
    s = s + ligne 
print(s) # impression de la totalité des lignes

2.4.2 -  La méthode readlines()

La méthode readlines(), renvoie une liste dont les éléments sont les lignes du fichier

Exemple. lecture des lignes du fichier avec readlines()

# -*- coding: utf-8 -*-   
f = open("myFile.txt",'r') 
content = f.readlines() 
print(content[0]) # impression de la première ligne
print(content[1]) # impression de la deuxième ligne

Remarque: On peut aussi lire la totalité des lignes du fichier en appliquant la boucle for:

Exemple. lecture des lignes à l'aide de la boucle for

# -*- coding: utf-8 -*-   
f = open("myFile.txt",'r') 
content = f.readlines() 
for ligne in content:     
    print(ligne)

On peut donc via readlines(), récupérer le nombre de lignes d'un fichier en appliquant la méthode len():

Exemple. nombre de lignes d'un fichier

# -*- coding: utf-8 -*-   
f = open("myFile.txt",'r') 
content = f.readlines()
nombre_lignes = len(content)# récupération du nombre des lignes du fichier

En récupérant le nombre de lignes d'un fichier, on peut donc lire la totalité de ses lignes en utilisant la boucle for:

Exemple. lecture de la totalité des lignes avec la boucle for

# -*- coding: utf-8 -*-   
f = open("myFile.txt",'r') 
content = f.readlines() 
n = len(content) 
for i in range(0,n-1):     
    print(content[i])

2.4.3 Lecture d'un fichier à une position précise avec la méthode readlines()

La méthode readlines() nous permet aussi de lire un fichier à une position bien précise :

Exemple. lecture d'un fichier depuis le caractère 10 jusqu'au caractère 20 de la troisième ligne

# -*- coding: utf-8 -*- 
f = open("myFile.txt",'r') 
content = f.readlines()[2] #récupération de la deuxième ligne
result = content[9:19] # extraction depuis le caractère qui se trouve à la position 10 jusqu'à 20     
print(result)

3 -  Lecture depuis une position donnée à l'aide de la méthode seek()

La méthode seek() permet de sélectionner une position précise pour lecture ou écriture

Exemple. lire le fichier à partir de la 6 ème position

# -*- coding: utf-8 -*- 
f = open("myFile.txt",'r') 
f.seek(5) # sélection de la position 5
print(f.read()) #lire le fichier à partir de la 6 ème position 

 

 

Younes Derfoufi
CRMEF OUJDA

2 thoughts on “Ouverture et lecture des fichiers en Python

Leave a Reply

Your email address will not be published. Required fields are marked *