Méthodes pratiques pour écrire et lire des listes dans un fichier en Python

Python est un langage très flexible pour le traitement des données, et il est fréquent de sauvegarder des listes dans des fichiers, puis de les lire à nouveau. Dans cet article, nous expliquerons en détail comment écrire et lire une liste dans un fichier texte ou un fichier CSV en utilisant Python, avec des exemples de code précis.

Sommaire

Comment écrire une liste dans un fichier en Python

Écrire une liste dans un fichier en Python est très utile pour la sauvegarde et le partage de données. Dans cette section, nous allons expliquer les étapes pour écrire une liste dans un fichier texte.

Écriture dans un fichier texte

Pour écrire une liste dans un fichier texte, nous utilisons la fonction intégrée de Python open. La fonction open permet d’ouvrir un fichier, et en spécifiant le mode w, on l’ouvre en mode écriture.

Ouvrir un fichier en mode écriture

with open('output.txt', 'w') as file:
    for item in my_list:
        file.write(f"{item}\n")

Dans le code ci-dessus, on utilise la structure with open pour ouvrir le fichier. Le fichier nommé output.txt est ouvert en mode w (écriture), et chaque élément de la liste est écrit dans le fichier sur une nouvelle ligne grâce à la fonction file.write.

Fermer le fichier

En utilisant la structure with open, le fichier est automatiquement fermé après l’opération, ce qui élimine la nécessité de le fermer explicitement et garantit une manipulation sécurisée des fichiers.

Exemple de code pour écrire une liste dans un fichier

Nous allons maintenant expliquer comment écrire une liste dans un fichier en Python à l’aide d’un exemple de code concret.

Définition et initialisation de la liste

Tout d’abord, nous définissons la liste à écrire dans le fichier. Par exemple, nous stockons une liste de noms de fruits.

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

Exemple de code pour écrire la liste dans un fichier

Ensuite, nous écrivons le contenu de la liste dans un fichier texte.

with open('fruits.txt', 'w') as file:
    for item in my_list:
        file.write(f"{item}\n")

Explication du code

  • with open('fruits.txt', 'w') as file:
    Crée et ouvre un fichier nommé 'fruits.txt' en mode écriture ('w'). La structure with assure la fermeture automatique du fichier après utilisation.
  • for item in my_list:
    Effectue une boucle sur chaque élément de la liste my_list.
  • file.write(f"{item}\n")
    Écrit chaque élément de la liste dans le fichier sur une nouvelle ligne. La syntaxe f"{item}\n" ajoute un saut de ligne après chaque élément.

Vérification du résultat

Après l’exécution de ce code, un fichier nommé fruits.txt est créé, avec chaque élément de la liste écrit sur une ligne distincte. Le contenu du fichier sera comme suit :

Apple
Banana
Cherry
Date
Elderberry

Comment lire une liste depuis un fichier en Python

Lire une liste depuis un fichier en Python est essentiel pour la réutilisation et l’analyse des données. Dans cette section, nous expliquerons comment lire une liste à partir d’un fichier texte.

Méthode pour lire depuis un fichier texte

Pour lire une liste depuis un fichier texte, nous utilisons la fonction intégrée open de Python. En spécifiant le mode r, on ouvre le fichier en mode lecture.

Ouvrir un fichier en mode lecture

with open('fruits.txt', 'r') as file:
    my_list = [line.strip() for line in file]

Dans ce code, on utilise with open pour ouvrir le fichier fruits.txt en mode lecture (r). Chaque ligne du fichier est lue dans une liste.

Conversion en liste

  • with open('fruits.txt', 'r') as file:
    Ouvre le fichier 'fruits.txt' en mode lecture ('r'). La structure with assure la fermeture automatique du fichier.
  • my_list = [line.strip() for line in file]
    Lit chaque ligne dans une liste my_list, en supprimant le saut de ligne final avec line.strip().

Vérification du résultat

Après exécution du code, les données de fruits.txt sont chargées dans la liste my_list. Le contenu du fichier est converti dans une liste comme suit :

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

Exemple de code pour lire une liste depuis un fichier

À travers un exemple de code concret, nous allons expliquer comment lire une liste depuis un fichier en Python.

Exemple de code pour lire une liste depuis un fichier

Le code suivant montre comment lire une liste à partir d’un fichier texte.

with open('fruits.txt', 'r') as file:
    my_list = [line.strip() for line in file]

Explication du code

  • with open('fruits.txt', 'r') as file:
    Ouvre le fichier 'fruits.txt' en mode lecture ('r'). La structure with assure la fermeture automatique du fichier après utilisation.
  • my_list = [line.strip() for line in file]
    Lit chaque ligne dans la liste my_list, en utilisant une compréhension de liste pour traiter chaque ligne et supprimer les sauts de ligne avec line.strip().

Exemple pratique

Voici le contenu réel du fichier et la liste obtenue après lecture :

Contenu de fruits.txt :

Apple
Banana
Cherry
Date
Elderberry

Liste lue :

my_list = ['Apple', 'Banana', 'Cherry', 'Date', 'Elderberry']

Gestion des erreurs

Il est important d’ajouter une gestion des erreurs pour les cas où le fichier n’existe pas ou que la lecture échoue. Dans l’exemple suivant, nous utilisons try et except pour gérer les erreurs.

try:
    with open('fruits.txt', 'r') as file:
        my_list = [line.strip() for line in file]
except FileNotFoundError:
    print("Le fichier est introuvable.")
except IOError:
    print("Une erreur est survenue lors de la lecture du fichier.")

Exemples avancés : Manipulation de fichiers CSV

Nous allons expliquer comment écrire et lire une liste dans un fichier CSV. Les fichiers CSV sont très pratiques pour la sauvegarde et le partage de données, et ils sont largement utilisés.

Écriture dans un fichier CSV

Utilisons le module csv de Python pour écrire une liste dans un fichier CSV.

Définition et initialisation de la liste

Tout d’abord, nous définissons la liste à écrire dans le fichier CSV. Ici, nous stockons plusieurs fruits avec leurs prix.

fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

Exemple de code pour écrire dans un fichier CSV

Ensuite, nous écrivons le contenu de la liste dans un fichier CSV.

import csv

with open('fruits.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Fruit', 'Price'])
    writer.writerows(fruits)

Explication du code

  • import csv
    Importe le module csv de Python.
  • with open('fruits.csv', 'w', newline='') as file:
    Crée et ouvre un fichier CSV nommé 'fruits.csv' en mode écriture ('w'). newline='' empêche l’insertion de lignes vides entre les enregistrements.
  • writer = csv.writer(file)
    Crée un objet writer pour écrire dans le fichier CSV.
  • writer.writerow(['Fruit', 'Price'])
    Écrit la ligne d’en-tête.
  • writer.writerows(fruits)
    Écrit chaque élément de la liste fruits dans le fichier CSV.

Lecture depuis un fichier CSV

Ensuite, nous allons lire une liste depuis un fichier CSV.

import csv

with open('fruits.csv', 'r') as file:
    reader = csv.reader(file)
    header = next(reader)  # Ignore la ligne d’en-tête
    fruits = [row for row in reader]

Explication du code

  • import csv
    Importe le module csv de Python.
  • with open('fruits.csv', 'r') as file:
    Ouvre le fichier 'fruits.csv' en mode lecture ('r').
  • reader = csv.reader(file)
    Crée un objet reader pour lire dans le fichier CSV.
  • header = next(reader)
    Ignore la ligne d’en-tête.
  • fruits = [row for row in reader]
    Lit chaque ligne du fichier dans la liste fruits.

Exemple de manipulation de fichiers CSV

Nous allons montrer un exemple concret d’écriture et de lecture d’une liste dans un fichier CSV en Python.

Exemple de code pour écrire dans un fichier CSV

Le code suivant montre comment écrire une liste dans un fichier CSV.

import csv

# Liste de données à écrire
fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

# Écrire dans le fichier CSV
with open('fruits.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    # Écriture de la ligne d’en-tête
    writer.writerow(['Fruit', 'Price'])
    # Écriture des lignes de données
    writer.writerows(fruits)

Explication du code

  • import csv
    Importe le module csv de Python.
  • fruits
    Définit une liste avec plusieurs fruits et leurs prix.
  • with open('fruits.csv', 'w', newline='') as file:
    Ouvre un fichier CSV nommé 'fruits.csv' en mode écriture ('w'), avec newline='' pour éviter les lignes vides entre les enregistrements.
  • writer = csv.writer(file)
    Crée un objet writer pour écrire dans le fichier CSV.
  • writer.writerow(['Fruit', 'Price'])
    Écrit la ligne d’en-tête 'Fruit' et 'Price'.
  • writer.writerows(fruits)
    Écrit chaque élément de la liste fruits dans le fichier CSV.

Exemple de code pour lire depuis un fichier CSV

Ensuite, nous allons montrer comment lire une liste depuis un fichier CSV.

import csv

# Lecture des données depuis le fichier CSV
with open('fruits.csv', 'r') as file:
    reader = csv.reader(file)
    # Ignore la ligne d’en-tête
    header = next(reader)
    # Charge chaque ligne du fichier dans une liste
    fruits = [row for row in reader]

Explication du code

  • import csv
    Importe le module csv de Python.
  • with open('fruits.csv', 'r') as file:
    Ouvre le fichier 'fruits.csv' en mode lecture ('r').
  • reader = csv.reader(file)
    Crée un objet reader pour lire dans le fichier CSV.
  • header = next(reader)
    Ignore la ligne d’en-tête.
  • fruits = [row for row in reader]
    Charge chaque ligne du fichier dans la liste fruits.

Vérification du résultat

Après l’exécution de ce code, la liste obtenue sera :

fruits = [
    ['Apple', 100],
    ['Banana', 50],
    ['Cherry', 200],
    ['Date', 150],
    ['Elderberry', 300]
]

Exercices pratiques

Pour renforcer votre compréhension des opérations d’écriture et de lecture de listes dans un fichier avec Python, nous vous proposons quelques exercices pratiques. Ces exercices vous aideront à développer des compétences concrètes.

Exercice 1 : Écriture et lecture dans un fichier texte

Écrivez la liste suivante dans un fichier texte nommé vegetables.txt, puis relisez-la et affichez-la sous forme de liste.

vegetables = ['Carrot', 'Potato', 'Cabbage', 'Broccoli', 'Spinach']

Résultat attendu

  • Le fichier vegetables.txt contient chaque nom de légume sur une ligne distincte.
  • Après lecture, une liste contenant les mêmes éléments que la liste d’origine vegetables est obtenue.

Exercice 2 : Écriture et lecture dans un fichier CSV

Écrivez la liste suivante dans un fichier CSV nommé employees.csv, puis relisez-la et affichez-la sous forme de liste.

employees = [
    ['John Doe', 'Manager', 50000],
    ['Jane Smith', 'Developer', 60000],
    ['Emily Davis', 'Designer', 55000]
]

Résultat attendu

  • Le fichier employees.csv contient les données de chaque employé sur une ligne distincte.
  • Après lecture, une liste contenant les mêmes éléments que la liste d’origine employees est obtenue.

Exercice 3 : Transformation des données et sauvegarde

Le fichier students.txt contient les noms et notes des étudiants. Lisez ce fichier, augmentez chaque note de 10 points, puis sauvegardez les données dans un nouveau fichier nommé updated_students.txt.

Contenu de students.txt :

Alice, 80
Bob, 70
Charlie, 90
Diana, 85
Edward, 60

Résultat attendu

  • Le fichier updated_students.txt contient les données avec les notes augmentées de 10 points.

Contenu de updated_students.txt :

Alice, 90
Bob, 80
Charlie, 100
Diana, 95
Edward, 70

Conclusion

Nous avons expliqué les méthodes concrètes pour écrire et lire des listes dans des fichiers en Python. Sauvegarder des listes dans des fichiers texte ou CSV permet de faciliter la persistance et le partage des données. En lisant les données à partir de fichiers, vous pouvez également réutiliser des données externes.

Dans cet article, nous avons présenté des exemples concrets d’écriture et de lecture dans des fichiers texte et CSV, en expliquant les étapes avec des codes pratiques. De plus, nous avons proposé des exercices pratiques pour renforcer votre compréhension.

En maîtrisant ces techniques, vous serez en mesure de réaliser un traitement des données plus efficace et productif avec Python. N’hésitez pas à les utiliser dans votre programmation quotidienne.

Sommaire