Comment manipuler des fichiers texte avec Python (ouvrir, lire, écrire) ?

  • Python
  • 03/10/2025
  • Mickael Celestino
En résumé : La manipulation de fichiers texte en Python est essentielle pour gérer et traiter des données efficacement. La fonction `open()` permet d'ouvrir des fichiers en différents modes : `'r'` pour lire, `'w'` pour écrire, et `'a'` pour ajouter du contenu. Utiliser `with` garantit la fermeture automatique des fichiers. Pour lire un fichier, `read()` récupère tout le contenu, tandis que `readline()` et `readlines()` permettent une lecture ligne par ligne. Pour écrire, `write()` remplace le contenu existant, et `append()` ajoute à la fin. Les blocs `try-except` aident à gérer les erreurs, assurant un code robuste.

Introduction à la manipulation de fichiers en Python

Pourquoi manipuler des fichiers texte ?

La manipulation de fichiers texte est une compétence fondamentale dans le développement logiciel. Elle permet de gérer et de traiter des données de manière efficace, ce qui est indispensable dans de nombreux projets. Que vous soyez développeur débutant ou expérimenté, comprendre comment manipuler des fichiers texte vous offre une flexibilité et une autonomie précieuses.

  • Stockage de données : Les fichiers texte sont souvent utilisés pour stocker des configurations, des logs ou des données utilisateur. Par exemple, un fichier config.txt peut contenir des paramètres de configuration pour une application, facilitant ainsi sa personnalisation sans modifier le code source.
  • Traitement de données : Dans le cadre de l'analyse de données, les fichiers texte servent à importer et exporter des données. Par exemple, un fichier CSV (Comma-Separated Values) est un format texte couramment utilisé pour échanger des données entre applications.
  • Automatisation de tâches : Les scripts Python peuvent lire et écrire dans des fichiers texte pour automatiser des tâches répétitives. Par exemple, un script peut générer des rapports quotidiens en extrayant des données d'un fichier texte et en les formatant dans un autre.
  • Communication entre systèmes : Les fichiers texte sont souvent utilisés pour échanger des informations entre différents systèmes ou applications. Par exemple, un fichier JSON (JavaScript Object Notation) est un format texte utilisé pour transmettre des données structurées entre un serveur et un client.
  • Sauvegarde et récupération : Les fichiers texte permettent de sauvegarder des données importantes de manière simple et rapide. Par exemple, un fichier backup.txt peut contenir une copie de sécurité des données critiques d'une application.

En manipulant des fichiers texte, vous pouvez non seulement gérer des données de manière efficace, mais aussi automatiser des processus, améliorer la communication entre systèmes et garantir la sauvegarde de vos informations. Ces compétences sont particulièrement utiles dans des environnements où le temps et la précision sont des facteurs clés.

Les bases de la manipulation de fichiers en Python

La manipulation de fichiers en Python est une compétence fondamentale pour tout développeur souhaitant automatiser des tâches ou gérer des données. Python offre des outils simples et puissants pour ouvrir, lire et écrire des fichiers texte, ce qui facilite grandement le traitement de l'information.

Pour commencer, le module intégré le plus couramment utilisé est le module os, qui permet de gérer les fichiers et les répertoires. Cependant, pour des opérations de base, vous utiliserez principalement la fonction open(). Cette fonction est essentielle pour ouvrir un fichier et elle accepte plusieurs modes, tels que 'r' pour lire, 'w' pour écrire, et 'a' pour ajouter du contenu.

N'oubliez pas de toujours fermer vos fichiers après utilisation avec la méthode close(), ou mieux encore, utilisez une structure with qui gère automatiquement la fermeture.

Voici un exemple simple pour ouvrir et lire un fichier :

with open('exemple.txt', 'r') as fichier: contenu = fichier.read() print(contenu) 

Ce code ouvre le fichier exemple.txt en mode lecture et affiche son contenu. L'utilisation de with garantit que le fichier est correctement fermé, même si une erreur survient.

Pour écrire dans un fichier, vous pouvez utiliser le mode 'w' qui écrase le contenu existant, ou 'a' pour ajouter du texte à la fin du fichier. Voici comment procéder :

with open('exemple.txt', 'w') as fichier: fichier.write('Bonjour, monde!') 

Ce code écrase le contenu de exemple.txt avec le texte Bonjour, monde!. Si vous souhaitez ajouter du texte sans supprimer l'existant, remplacez 'w' par 'a'.

En résumé, maîtriser ces fonctions de base vous permettra de manipuler efficacement les fichiers texte en Python, que ce soit pour des projets personnels ou professionnels.

Ouvrir des fichiers en Python

Utilisation de la fonction open()

Pour manipuler des fichiers texte en Python, la fonction open() est votre point de départ. Elle vous permet d'ouvrir un fichier pour le lire, l'écrire ou l'ajouter. Comprendre comment utiliser cette fonction est fondamental pour gérer efficacement vos fichiers.

La syntaxe de base de open() est simple : open(nom_du_fichier, mode). Le nom_du_fichier est une chaîne de caractères indiquant le chemin du fichier, tandis que le mode détermine comment vous souhaitez interagir avec le fichier.

Voici les différents modes d'ouverture que vous pouvez utiliser :

  • 'r' : Ouvre le fichier en mode lecture. C'est le mode par défaut. Si le fichier n'existe pas, une erreur est levée.
  • 'w' : Ouvre le fichier en mode écriture. Si le fichier existe déjà, son contenu est effacé. Si le fichier n'existe pas, il est créé.
  • 'a' : Ouvre le fichier en mode ajout. Le contenu est ajouté à la fin du fichier sans effacer les données existantes. Si le fichier n'existe pas, il est créé.
  • 'r+' : Ouvre le fichier en mode lecture et écriture. Le fichier doit exister.
  • 'b' : Utilisé pour ouvrir un fichier en mode binaire, par exemple 'rb' pour lire un fichier binaire.
Pensez à toujours fermer le fichier après utilisation avec la méthode close() ou, mieux encore, utilisez une structure with pour gérer automatiquement la fermeture du fichier.

Par exemple, pour lire un fichier texte, vous pouvez utiliser :

with open('mon_fichier.txt', 'r') as fichier: contenu = fichier.read() print(contenu) 

Cette approche garantit que le fichier est correctement fermé, même si une erreur survient pendant la lecture.

En choisissant le bon mode d'ouverture, vous optimisez la gestion de vos fichiers et évitez les erreurs courantes. N'oubliez pas que chaque mode a ses spécificités, alors sélectionnez celui qui correspond le mieux à vos besoins.

Gestion des exceptions lors de l'ouverture de fichiers

Lorsque vous travaillez avec des fichiers en Python, il est fréquent de rencontrer des erreurs, notamment lors de l'ouverture de fichiers. Ces erreurs peuvent survenir pour diverses raisons, telles que l'absence du fichier, des permissions insuffisantes ou des chemins incorrects. Pour gérer ces situations, Python propose une structure de contrôle appelée blocs try-except.

Les blocs try-except vous permettent de capturer et de gérer les exceptions qui pourraient survenir lors de l'exécution de votre code. Cela vous aide à éviter que votre programme ne se termine de manière inattendue et vous offre la possibilité de fournir des messages d'erreur clairs ou de prendre des mesures correctives.

Voici comment vous pouvez utiliser un bloc try-except pour gérer les exceptions lors de l'ouverture d'un fichier :

try: with open('mon_fichier.txt', 'r') as fichier: contenu = fichier.read() except FileNotFoundError: print(Erreur : Le fichier n'a pas été trouvé.) except PermissionError: print(Erreur : Vous n'avez pas la permission d'ouvrir ce fichier.) except Exception as e: print(fUne erreur inattendue est survenue : {e}) 

Dans cet exemple, le bloc try tente d'ouvrir un fichier nommé 'mon_fichier.txt' en mode lecture. Si le fichier n'existe pas, l'exception FileNotFoundError est capturée et un message d'erreur est affiché. De même, si vous n'avez pas les permissions nécessaires, l'exception PermissionError est gérée. Le bloc except Exception as e capture toute autre exception non spécifiée, vous permettant de gérer les erreurs imprévues.

Q : Pourquoi utiliser des blocs try-except plutôt que de laisser Python gérer les erreurs ?

R : Les blocs try-except vous permettent de contrôler le flux de votre programme en cas d'erreur, offrant une meilleure expérience utilisateur et évitant les arrêts brusques.

Q : Que faire si je veux exécuter du code, qu'une exception soit levée ou non ?

R : Utilisez le bloc finally après les blocs try-except. Le code à l'intérieur de finally s'exécute toujours, que le bloc try ait levé une exception ou non.

En utilisant les blocs try-except, vous pouvez rendre votre code plus robuste et plus résilient face aux erreurs potentielles, garantissant ainsi une meilleure gestion des fichiers dans vos applications Python.

Lire des fichiers en Python

Lecture de fichiers ligne par ligne

Lorsque vous travaillez avec des fichiers texte en Python, il est souvent nécessaire de lire le contenu ligne par ligne. Cette approche est particulièrement utile lorsque vous traitez de grands fichiers ou lorsque vous souhaitez analyser chaque ligne individuellement.

Pour lire un fichier ligne par ligne, Python propose plusieurs méthodes pratiques. Les deux méthodes les plus couramment utilisées sont readlines() et readline().

La méthode readlines() lit toutes les lignes d'un fichier et les retourne sous forme de liste, où chaque élément représente une ligne du fichier. Cette méthode est simple à utiliser et permet de parcourir facilement chaque ligne à l'aide d'une boucle. Voici un exemple :

with open('exemple.txt', 'r') as fichier: lignes = fichier.readlines() for ligne in lignes: print(ligne.strip()) 

Dans cet exemple, readlines() charge toutes les lignes dans la variable lignes, que vous pouvez ensuite parcourir avec une boucle for. Notez l'utilisation de strip() pour supprimer les espaces blancs en début et fin de chaque ligne.

  • Avantage : Facilité d'utilisation pour traiter toutes les lignes à la fois.
  • Inconvénient : Peut consommer beaucoup de mémoire pour les fichiers volumineux.

La méthode readline(), quant à elle, lit une seule ligne à la fois. Elle est idéale lorsque vous souhaitez traiter ou analyser chaque ligne individuellement sans charger tout le fichier en mémoire. Voici comment l'utiliser :

with open('exemple.txt', 'r') as fichier: ligne = fichier.readline() while ligne: print(ligne.strip()) ligne = fichier.readline() 

Dans cet exemple, readline() lit une ligne à la fois, et la boucle while continue jusqu'à ce qu'il n'y ait plus de lignes à lire.

L'utilisation de readline() est particulièrement avantageuse pour les fichiers très volumineux, car elle permet de gérer la mémoire de manière plus efficace.

En choisissant entre readlines() et readline(), considérez la taille du fichier et la manière dont vous souhaitez traiter les données. Pour des fichiers de taille modérée, readlines() offre une solution rapide et simple. Pour des fichiers plus grands, readline() vous permet de contrôler la mémoire utilisée tout en traitant chaque ligne individuellement.

Utilisation de la méthode read()

La méthode read() en Python est un outil puissant pour lire l'intégralité d'un fichier en une seule opération. Lorsque vous ouvrez un fichier en mode lecture, vous pouvez utiliser read() pour récupérer tout le contenu sous forme de chaîne de caractères. Cela s'avère particulièrement utile lorsque vous devez traiter ou analyser des fichiers de petite à moyenne taille, où la lecture complète en mémoire ne pose pas de problème.

Pour utiliser read(), commencez par ouvrir votre fichier avec la fonction open(), en spécifiant le mode 'r' pour la lecture. Ensuite, appelez simplement read() sur l'objet fichier. Voici un exemple concret :

with open('exemple.txt', 'r') as fichier: contenu = fichier.read() print(contenu) 

Dans cet exemple, le fichier exemple.txt est ouvert et son contenu est entièrement lu et stocké dans la variable contenu. L'utilisation du mot-clé with garantit que le fichier est correctement fermé après la lecture, même si une exception survient.

La méthode read() lit tout le fichier d'un coup, ce qui peut consommer beaucoup de mémoire si le fichier est volumineux. Assurez-vous que votre système peut gérer la taille du fichier.

Comparons maintenant read() avec d'autres méthodes de lecture :

  • readline() : Cette méthode lit une seule ligne à la fois. Elle est idéale pour traiter des fichiers ligne par ligne, surtout lorsque vous travaillez avec de très gros fichiers. Par exemple, pour lire la première ligne d'un fichier, vous utiliseriez fichier.readline().
  • readlines() : Elle lit toutes les lignes d'un fichier et les retourne sous forme de liste. Chaque élément de la liste représente une ligne du fichier. C'est une bonne option si vous devez manipuler ou analyser chaque ligne individuellement.

Chacune de ces méthodes a ses propres avantages selon le contexte. read() est rapide et simple pour des fichiers de taille modérée, tandis que readline() et readlines() offrent plus de contrôle pour les fichiers plus volumineux ou lorsque vous devez traiter les données ligne par ligne.

Écrire dans des fichiers en Python

Utilisation de la méthode write()

Écrire dans un fichier avec Python est une tâche courante qui peut être réalisée facilement grâce à la méthode write(). Cette méthode vous permet de transférer des données textuelles dans un fichier, que ce soit pour créer un nouveau fichier ou pour modifier un fichier existant.

Pour commencer, il est important d'ouvrir le fichier en mode écriture. Utilisez la fonction open() avec le mode 'w' pour écraser le contenu existant ou 'a' pour ajouter du contenu sans supprimer les données déjà présentes. Par exemple :

with open('exemple.txt', 'w') as fichier: fichier.write('Bonjour, ceci est un texte écrit avec Python.') 

Dans cet exemple, le fichier 'exemple.txt' est ouvert en mode écriture, et la chaîne de caractères est écrite dans le fichier. Si le fichier n'existe pas, Python le crée automatiquement.

Assurez-vous de toujours fermer le fichier après l'écriture pour éviter les pertes de données. Utiliser le mot-clé with comme dans l'exemple ci-dessus gère automatiquement la fermeture du fichier.

Lors de l'utilisation de write(), gardez à l'esprit que cette méthode n'ajoute pas de retour à la ligne à la fin de votre texte. Si vous souhaitez écrire plusieurs lignes, vous devez inclure explicitement le caractère de nouvelle ligne \n :

with open('exemple.txt', 'w') as fichier: fichier.write('Première ligne.\n') fichier.write('Deuxième ligne.\n') 

Une autre précaution à prendre est de vérifier que le texte que vous écrivez est bien encodé. Par défaut, Python utilise l'encodage UTF-8, qui est généralement suffisant pour la plupart des textes. Cependant, si vous travaillez avec des caractères spéciaux, assurez-vous que l'encodage est correctement spécifié :

with open('exemple.txt', 'w', encoding='utf-8') as fichier: fichier.write('Texte avec des caractères spéciaux : é, è, à.') 

En suivant ces conseils, vous pouvez écrire dans des fichiers texte de manière efficace et sécurisée, tout en évitant les erreurs courantes.

Ajout de contenu avec la méthode append()

Ajouter du contenu à un fichier texte existant en Python peut se faire facilement grâce à la méthode append(). Cette méthode est particulièrement utile lorsque vous souhaitez conserver le contenu existant d'un fichier tout en y ajoutant de nouvelles informations.

Pour utiliser append(), ouvrez le fichier en mode 'a'. Ce mode permet d'ajouter du texte à la fin du fichier sans écraser les données déjà présentes. Voici un exemple simple :

with open('mon_fichier.txt', 'a') as fichier: fichier.write('Nouveau contenu ajouté.\n') 

Dans cet exemple, le fichier mon_fichier.txt est ouvert en mode append, et la chaîne de caractères Nouveau contenu ajouté. est ajoutée à la fin du fichier.

Comparaison avec la méthode write()

Caractéristiqueappend()write()
Mode d'ouverture'a''w'
Effet sur le contenuAjoute à la finRemplace le contenu existant
Utilisation typiqueAjouter des logs, des entréesCréer ou réécrire un fichier
Risque de perte de donnéesNonOui, si le fichier existait déjà

La méthode write() est utilisée pour écrire dans un fichier, mais elle remplace le contenu existant si le fichier est déjà présent. Cela peut être problématique si vous souhaitez conserver les données précédentes. En revanche, append() garantit que le contenu existant reste intact, ce qui est idéal pour des tâches comme l'ajout de logs ou de nouvelles entrées.

En utilisant append(), vous pouvez facilement gérer des fichiers texte sans craindre de perdre des informations importantes. Assurez-vous simplement d'ouvrir le fichier avec le bon mode et de vérifier que le fichier existe pour éviter les erreurs.

Conclusion et bonnes pratiques

Bonnes pratiques pour la manipulation de fichiers

Lorsque vous manipulez des fichiers en Python, adopter de bonnes pratiques garantit une gestion efficace et sécurisée des ressources. Voici quelques conseils pour vous guider dans cette démarche.

  • Utilisez le mot-clé with : En ouvrant un fichier avec with open('fichier.txt', 'r') as f, vous vous assurez que le fichier est automatiquement fermé après son utilisation, même en cas d'erreur. Cela simplifie la gestion des ressources et évite les fuites de mémoire.
  • Choisissez le bon mode d'ouverture : Assurez-vous d'utiliser le mode approprié ('r' pour lire, 'w' pour écrire, 'a' pour ajouter) selon vos besoins. Par exemple, le mode 'w' écrase le contenu existant, tandis que 'a' ajoute à la fin du fichier.
  • Gérez les exceptions : Utilisez des blocs try-except pour gérer les erreurs potentielles, comme l'absence du fichier ou des permissions insuffisantes. Cela permet de fournir des messages d'erreur clairs et d'éviter les plantages inattendus.
  • Lisez et écrivez par blocs : Pour les fichiers volumineux, préférez lire et écrire par blocs plutôt que d'un seul coup. Par exemple, utilisez f.read(1024) pour lire par morceaux de 1 Ko, ce qui optimise l'utilisation de la mémoire.
  • Vérifiez l'encodage : Spécifiez l'encodage lors de l'ouverture d'un fichier texte, par exemple open('fichier.txt', 'r', encoding='utf-8'). Cela évite les problèmes de caractères spéciaux et garantit la compatibilité avec différents systèmes.
  • Fermez les fichiers explicitement : Si vous n'utilisez pas le mot-clé with, n'oubliez pas de fermer le fichier avec f.close(). Cela libère les ressources et prévient les erreurs de lecture/écriture ultérieures.
  • Utilisez des chemins relatifs : Préférez les chemins relatifs aux chemins absolus pour une meilleure portabilité de votre code. Par exemple, open('data/fichier.txt') est plus flexible que open('/home/user/data/fichier.txt').

En appliquant ces bonnes pratiques, vous optimisez la manipulation des fichiers en Python, garantissant ainsi un code plus robuste et maintenable.

Récapitulatif des concepts clés

Dans cet article, nous avons exploré les concepts clés de la manipulation de fichiers texte avec Python, une compétence précieuse pour tout développeur. Voici un récapitulatif des points principaux abordés :

L'ouverture de fichiers en Python commence par l'utilisation de la fonction open(), qui permet de spécifier différents modes d'ouverture, tels que 'r' pour lire, 'w' pour écrire, et 'a' pour ajouter du contenu. Chaque mode a son importance selon l'objectif visé, et il est crucial de choisir le bon pour éviter des erreurs.

Toujours fermer un fichier après utilisation avec la méthode close() ou en utilisant un bloc with pour une gestion automatique.

La lecture de fichiers peut se faire de plusieurs manières. Vous pouvez lire un fichier ligne par ligne avec les méthodes readline() et readlines(), ou lire l'intégralité du fichier avec read(). Chaque méthode offre une flexibilité selon le volume de données à traiter.

Pour écrire dans un fichier, la méthode write() est utilisée. Elle nécessite de faire attention à ne pas écraser le contenu existant, sauf si c'est intentionnel. Pour ajouter du contenu sans supprimer l'existant, la méthode append() est idéale.

Lors de l'écriture, assurez-vous que le fichier est ouvert en mode 'w' ou 'a' pour éviter des erreurs.

Enfin, nous avons souligné l'importance de gérer les exceptions avec des blocs try-except pour anticiper et gérer les erreurs potentielles lors de l'ouverture ou de la manipulation de fichiers. Cela garantit une robustesse accrue de votre code.

En appliquant ces concepts, vous serez en mesure de manipuler des fichiers texte de manière efficace et sécurisée, tout en optimisant votre temps et vos ressources.

Nos formations

  • Présentiel
  • 7h de formation
  • shape 7h de formation en présentiel en collectif
  • Distanciel
  • 40h de formation
  • shape 8h seul(e) avec un formateur en visio
  • shape 32h de E-learning (Videos et exercices)
  • Distanciel
  • 50h de formation
  • shape 10h seul(e) avec un formateur en visio
  • shape 40h de E-learning (Videos et exercices)
  • Distanciel
  • 40h de formation
  • shape 8h seul(e) avec un formateur en visio
  • shape 32h de E-learning (Videos et exercices)

Ils ont suivi une formation avec SENZA

Des centaines de clients nous font confiance, et voici ce qu'ils ont pensé de nos formations. Ces avis sont vérifiés et proviennent directement de Google, reflétant l'expérience réelle de nos apprenants.

Autres articles similaires


pdf

Téléchargez notre programme de formation

Formation Python