Python - Guide de lecture de fichiers pour débutants

Bonjour à tous, futurs maîtres Python ! ?aujourd'hui, nous allons entamer un voyage passionnant dans le monde de la gestion des fichiers en Python. En tant que professeur de informatique de votre quartier, je suis là pour vous guider à travers les entrailles et les sorties de la lecture des fichiers. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code avant – nous commencerons de zéro et nous construirons notre chemin. Alors, prenez votre boisson préférée, mettez-vous à l'aise, et plongeons-y !

Python - Read Files

Ouverture d'un fichier en lecture

Avant de pouvoir lire un fichier, nous devons l'ouvrir. Pensez à cela comme frapper à la porte d'une maison avant d'entrer. En Python, nous utilisons la fonction open() pour cela. Commençons par un exemple simple :

fichier = open("bonjour.txt", "r")

Voici ce qui se passe :

  • open() est la fonction que nous utilisons pour ouvrir les fichiers
  • "bonjour.txt" est le nom du fichier que nous voulons ouvrir
  • "r" signifie que nous ouvrons le fichier en mode lecture

N'oubliez pas de toujours fermer le fichier lorsque vous avez terminé :

fichier.close()

Lecture d'un fichier à l'aide de la méthode read()

Maintenant que nous avons ouvert notre fichier, lisons son contenu. La méthode read() est comme un aspirateur – elle aspire tout le contenu en une seule fois. Voici comment l'utiliser :

fichier = open("bonjour.txt", "r")
contenu = fichier.read()
print(contenu)
fichier.close()

Ce code affichera tout le contenu du fichier. C'est simple, mais soyez prudent avec les grands fichiers – ils pourraient avaler toute la mémoire de votre ordinateur !

Lecture d'un fichier à l'aide de la méthode readline()

Parfois, nous voulons lire notre fichier ligne par ligne, comme savourer chaque bouchée d'un repas délicieux. C'est là que readline() est pratique :

fichier = open("bonjour.txt", "r")
ligne = fichier.readline()
while ligne:
print(ligne, end='')
ligne = fichier.readline()
fichier.close()

Ce code lit et imprime chaque ligne du fichier. Le end='' dans la fonction print() empêche l'ajout d'une ligne supplémentaire, car readline() conserve le caractère de nouvelle ligne.

Lecture d'un fichier à l'aide de la méthode readlines()

Et si nous voulions toutes les lignes, mais sous forme de liste ? Entrez readlines() :

fichier = open("bonjour.txt", "r")
lignes = fichier.readlines()
for ligne in lignes:
print(ligne, end='')
fichier.close()

Cette méthode renvoie une liste où chaque élément est une ligne du fichier. C'est comme avoir une boîte de chocolats, où chaque chocolat est une ligne de texte !

Utilisation de l'instruction "with"

Maintenant, parlons d'un truc sympa que Python offre – l'instruction with. C'est comme avoir un ami responsable qui se souvient toujours de fermer la porte (fichier) après en avoir quitté :

with open("bonjour.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)

L'instruction with ferme automatiquement le fichier pour nous lorsque nous avons terminé. Plus besoin de penser à appeler close() !

Lecture d'un fichier en mode binaire

Parfois, nous devons lire des fichiers qui ne sont pas seulement du texte, comme des images ou des exécutables. Pour ces cas, nous utilisons le mode binaire :

with open("image.jpg", "rb") as fichier:
donnees_binaires = fichier.read()
print(len(donnees_binaires), "octets lus")

Le mode "rb" ouvre le fichier en mode lecture binaire. C'est comme mettre des lunettes spéciales pour voir les uns et les zéros !

Lecture de données entières à partir d'un fichier

Supposons que nous avons un fichier avec des nombres, un par ligne. Voici comment nous pouvons les lire et les utiliser comme des entiers :

with open("nombres.txt", "r") as fichier:
nombres = [int(ligne.strip()) for ligne in fichier]
print("Somme des nombres :", sum(nombres))

Ce code lit chaque ligne, la convertit en entier et l'ajoute à une liste. Ensuite, nous pouvons faire de la mathématique avec nos nombres !

Lecture de données flottantes à partir d'un fichier

Similairement aux entiers, nous pouvons lire des nombres à virgule flottante :

with open("mesures.txt", "r") as fichier:
mesures = [float(ligne.strip()) for ligne in fichier]
print("Mesure moyenne :", sum(mesures) / len(mesures))

Cette fois, nous utilisons float() au lieu de int() pour convertir nos chaînes en nombres décimaux.

Lecture et écriture dans un fichier en utilisant le mode "r+"

Parfois, nous voulons lire et écrire dans le même fichier. Le mode "r+" nous permet de le faire :

with open("journal.txt", "r+") as fichier:
contenu = fichier.read()
fichier.write("\nNouvelle entrée :aujourd'hui j'ai appris la gestion des fichiers en Python !")
fichier.seek(0)
contenu_mis_a_jour = fichier.read()
print(contenu_mis_a_jour)

Ce code lit le fichier, ajoute une nouvelle ligne, puis le lit à nouveau pour afficher les modifications.

Lecture et écriture dans un fichier simultanément en Python

Voici un truc : nous pouvons utiliser deux objets fichier pour lire et écrire simultanément :

with open("original.txt", "r") as fichier_lecture, open("copie.txt", "w") as fichier_ecriture:
for ligne in fichier_lecture:
fichier_ecriture.write(ligne.upper())

Ce code lit à partir d'un fichier et écrit une version en majuscules dans un autre fichier. C'est comme avoir une photocopieuse qui crie !

Lecture d'un fichier à partir d'un décalage spécifique

Parfois, nous voulons commencer à lire à un point spécifique dans le fichier. Nous pouvons le faire avec la méthode seek() :

with open("long_texte.txt", "r") as fichier:
fichier.seek(50)  # Déplacer vers le 50e octet
contenu_partiel = fichier.read(100)  # Lire 100 octets à partir de ce point
print(contenu_partiel)

C'est comme glisser un signet dans un livre et commencer à lire à partir de là.

Maintenant, résumons tous les méthodes que nous avons apprises dans un tableau pratique :

Méthode Description
open() Ouvre un fichier
read() Lit tout le contenu du fichier
readline() Lit une seule ligne
readlines() Lit toutes les lignes dans une liste
with instruction Ferme automatiquement le fichier
"rb" mode Ouvre le fichier en mode lecture binaire
int() / float() Convertit une chaîne en nombre
"r+" mode Ouvre le fichier pour lecture et écriture
seek() Se déplace à une position spécifique dans le fichier

Et voilà, les amis ! Vous venez de découvrir les bases de la lecture des fichiers en Python. N'oubliez pas, la pratique fait le maître, donc essayez ces méthodes sur vos propres fichiers. Qui sait, vous pourriez bien devenir le prochain magicien de la gestion des fichiers en Python ! Bon codage ! ?✨

Credits: Image by storyset