Lecture et écriture de fichiers

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à lire et à écrire des fichiers en Python. Nous commencerons par des exemples simples et augmenterons progressivement la complexité du code.

La lecture et l'écriture de fichiers sont des compétences essentielles dans tout langage de programmation. Elles nous permettent de stocker et de manipuler des données de manière persistante et sont un élément clé de nombreux applications.
En Python, la lecture et l'écriture de fichiers sont simples et faciles à apprendre. Nous commencerons par apprendre à lire un fichier, puis passerons à l'écriture de fichiers.

Objectifs

  • Lecture et écriture de fichiers

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/FileHandlingGroup -.-> python/file_opening_closing("Opening and Closing Files") python/FileHandlingGroup -.-> python/file_reading_writing("Reading and Writing Files") python/FileHandlingGroup -.-> python/file_operations("File Operations") python/FileHandlingGroup -.-> python/with_statement("Using with Statement") python/AdvancedTopicsGroup -.-> python/context_managers("Context Managers") subgraph Lab Skills python/file_opening_closing -.-> lab-92{{"Lecture et écriture de fichiers"}} python/file_reading_writing -.-> lab-92{{"Lecture et écriture de fichiers"}} python/file_operations -.-> lab-92{{"Lecture et écriture de fichiers"}} python/with_statement -.-> lab-92{{"Lecture et écriture de fichiers"}} python/context_managers -.-> lab-92{{"Lecture et écriture de fichiers"}} end

Lecture d'un fichier

Pour lire un fichier en Python, nous utilisons la fonction open, qui renvoie un objet de fichier. Nous pouvons ensuite utiliser diverses méthodes de l'objet de fichier pour lire le contenu du fichier.

Ouvrez une nouvelle session d'interpréteur Python et tapez le code suivant :

python3

Voici un exemple de la manière d'ouvrir et de lire un fichier texte :

## Ouvrez le fichier
f = open('filename.txt', 'r')

## Lisez le contenu du fichier
contenu = f.read()

## Affichez le contenu
print(contenu)

## Fermez le fichier
f.close()

La fonction open prend deux arguments : le nom du fichier et le mode d'ouverture du fichier. Dans ce cas, nous utilisons le mode 'r', qui signifie "lecture". C'est le mode par défaut, donc nous aurions également pu écrire open('filename.txt').

La méthode read de l'objet de fichier renvoie le contenu du fichier sous forme de chaîne de caractères. Nous pouvons ensuite afficher le contenu ou le manipuler comme bon nous semble.

Il est important de fermer le fichier une fois que nous avons fini de l'utiliser, pour libérer les ressources système. Nous pouvons le faire en utilisant la méthode close de l'objet de fichier.

Écriture dans un fichier

Pour écrire dans un fichier en Python, nous suivons un processus similaire à celui de la lecture d'un fichier. Nous utilisons la fonction open pour obtenir un objet de fichier, puis la méthode write pour écrire dans le fichier.

Voici un exemple de la manière d'ouvrir un fichier en écriture et d'y écrire du texte :

## Ouvrez le fichier
f = open('filename.txt', 'w')

## Écrivez du texte dans le fichier
f.write('Hello, world!\nPython')

## Fermez le fichier
f.close()

Comme pour la lecture d'un fichier, nous utilisons la fonction open pour obtenir un objet de fichier. Cette fois-ci, nous utilisons le mode 'w', qui signifie "écriture". Cela créera le fichier s'il n'existe pas déjà et l'écrasera s'il existe.

La méthode write prend une chaîne de caractères en argument et l'écrit dans le fichier. Comme pour la lecture d'un fichier, il est important de fermer le fichier une fois que nous avons fini de l'utiliser.

Travailler avec le contenu des fichiers

Maintenant que nous savons lire et écrire dans des fichiers, examinons quelques exemples plus avancés de manipulation du contenu des fichiers.

Lecture d'un fichier ligne par ligne

Parfois, nous souhaitons peut-être lire un fichier ligne par ligne plutôt que de lire tout le contenu d'un coup. Pour ce faire, nous pouvons utiliser la méthode readline de l'objet de fichier.
Voici un exemple de la manière de lire un fichier ligne par ligne :

## Ouvrez le fichier
f = open('filename.txt', 'r')

## Lisez et affichez chaque ligne
for ligne in f:
    print(ligne)

## Fermez le fichier
f.close()

La boucle for itère sur les lignes du fichier. A chaque itération, elle lit et affiche la ligne courante. Lorsqu'il n'y a plus de lignes à lire, la boucle se termine et le fichier est fermé.

Écriture dans un fichier ligne par ligne

Pour écrire dans un fichier ligne par ligne, nous pouvons utiliser la méthode writelines de l'objet de fichier. Cette méthode prend une liste de chaînes de caractères en argument et les écrit dans le fichier, chaque chaîne de la liste devenant une ligne distincte dans le fichier.
Voici un exemple de la manière d'écrire dans un fichier ligne par ligne :

## Ouvrez le fichier
f = open('filename.txt', 'w')

## Écrivez une liste de lignes dans le fichier
lignes = ['Ligne 1', 'Ligne 2', 'Ligne 3']
f.writelines(lignes)

## Fermez le fichier
f.close()

Ajout à un fichier

Pour ajouter du contenu à un fichier plutôt que de l'écraser, nous pouvons utiliser le mode 'a' lors de l'ouverture du fichier. Cela ouvrira le fichier en mode ajout, nous permettant d'ajouter du nouveau contenu à la fin du fichier sans écraser le contenu existant.
Voici un exemple de la manière d'ajouter du contenu à un fichier :

## Ouvrez le fichier
f = open('filename.txt', 'a')

## Ajoutez du texte au fichier
f.write('Ceci est du nouveau contenu')

## Fermez le fichier
f.close()

Instruction with

L'instruction with en Python est utilisée pour entourer l'exécution d'un bloc de code avec des méthodes définies par un gestionnaire de contexte. Un gestionnaire de contexte est un objet qui définit les méthodes __enter__ et __exit__. L'instruction with crée un gestionnaire de contexte temporaire pour la durée du bloc de code indenté qui la suit.

La fonction open est une fonction intégrée de Python qui renvoie un objet de fichier, qui représente un fichier ouvert. Lorsque l'on travaille avec des fichiers, il est important de les fermer une fois qu'on a fini d'y travailler pour libérer les ressources système. L'instruction with facilite la manipulation des fichiers, car elle ferme automatiquement le fichier lorsque le bloc de code est quitté, même si une exception est levée.

Voici un exemple de la manière d'utiliser l'instruction with pour ouvrir et lire un fichier :

with open('filename.txt', 'r') as f:
    contenu = f.read()
    print(contenu)

Dans cet exemple, la fonction open est appelée à l'intérieur de l'instruction with pour ouvrir le fichier 'filename.txt' en mode lecture. L'objet de fichier est ensuite passé à la clause as, où il est nommé f. Le bloc de code indenté qui suit l'instruction with peut alors utiliser l'objet de fichier f pour lire le contenu du fichier.

Lorsque le bloc de code est quitté, le fichier est automatiquement fermé par le gestionnaire de contexte, même si une exception est levée. Cela signifie que nous n'avons pas besoin d'appeler explicitement la méthode close de l'objet de fichier.

Il est recommandé d'utiliser l'instruction with pour gérer la durée de vie d'un objet de fichier plutôt qu'ouvrir et fermer manuellement le fichier, car elle est plus concise et assure que le fichier est toujours correctement fermé, même si une exception est levée.

Récapitulatif

Dans ce laboratoire, nous avons appris à lire et écrire dans des fichiers en Python. Nous avons vu comment ouvrir et fermer des fichiers, lire et écrire leur contenu, et travailler avec le contenu des fichiers de manière plus avancée. Nous avons également vu comment utiliser différents modes lors de l'ouverture de fichiers pour contrôler leur accès.

À la fin de ce laboratoire, vous devriez être capable de lire et d'écrire dans des fichiers en Python avec confiance.