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:
[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
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
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:
Exemple: lecture séquentielle
La même opération peut être réalisée en utilisant la boucle while :
Exemple. lecture d'un fichier avec la boucle while
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
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()
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()
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
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
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
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
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
Younes Derfoufi
CRMEF OUJDA
oui