Python

Exercices corrigés sur les fichiers en Python

Les fichiers en Python sont des éléments essentiels dans le développement de logiciels. En pratique, la manipulation de fichiers est une compétence fondamentale. Que ce soit pour lire des données à partir d’un fichier, écrire dans un fichier ou manipuler des fichiers de manière plus complexe, maîtriser les opérations de base sur les fichiers est crucial.

Dans cet article, nous allons explorer quelques exercices corrigés pour vous aider à renforcer vos compétences en manipulation de fichiers en Python. Ces exercices couvrent un large éventail de techniques, des opérations de base telles que la lecture et l’écriture de fichiers aux tâches plus avancées comme la gestion des répertoires et des chemins de fichiers.

Exercice 1 : Lecture d’un fichier texte

L’objectif de cet exercice est de lire le contenu d’un fichier texte en Python et d’afficher son contenu.

# Ouvrir le fichier en mode lecture
with open("exemple.txt", "r") as fichier:
    # Lire et afficher chaque ligne du fichier
    for ligne in fichier:
        print(ligne, end="")

Dans cet exemple, “exemple.txt” est le nom du fichier à lire. Le mode “r” est utilisé pour spécifier que nous voulons lire le fichier.

Exercice 2 : Écriture dans un fichier texte

Dans cet exercice, nous allons écrire du contenu dans un fichier texte en Python.

# Ouvrir le fichier en mode écriture
with open("nouveau_fichier.txt", "w") as fichier:
    # Écrire du contenu dans le fichier
    fichier.write("Ceci est un nouveau fichier créé en Python.\n")
    fichier.write("Il contient quelques lignes de texte.\n")
    fichier.write("Fin.")

Dans cet exemple, nous utilisons le mode “w” pour spécifier que nous voulons écrire dans le fichier. Si le fichier n’existe pas, il sera créé. Si le fichier existe déjà, son contenu sera écrasé.

Exercice 3 : Ajout de contenu à un fichier existant

Parfois, vous voudrez ajouter du contenu à un fichier existant sans supprimer son contenu actuel. Voici comment le faire en Python :

# Ouvrir le fichier en mode ajout
with open("fichier_existant.txt", "a") as fichier:
    # Ajouter du contenu à la fin du fichier
    fichier.write("Ceci est une nouvelle ligne ajoutée à un fichier existant.\n")

Dans cet exemple, nous utilisons le mode “a” pour spécifier que nous voulons ajouter du contenu à la fin du fichier sans écraser le contenu existant.

Exercice 4 : Gestion des erreurs lors de la lecture d’un fichier

Il est important de gérer les erreurs qui pourraient survenir lors de la lecture ou de l’écriture de fichiers. Voici un exemple de gestion des erreurs lors de la lecture d’un fichier :

try:
    # Tentative d'ouverture du fichier en mode lecture
    with open("fichier_inexistant.txt", "r") as fichier:
        contenu = fichier.read()
        print(contenu)
except FileNotFoundError:
    print("Le fichier spécifié est introuvable.")

Dans cet exemple, si le fichier “fichier_inexistant.txt” n’existe pas, une FileNotFoundError sera levée et le message “Le fichier spécifié est introuvable.” sera affiché.

Exercice 5 : Utilisation de la bibliothèque os pour manipuler les fichiers et répertoires

La bibliothèque os de Python offre de nombreuses fonctionnalités pour manipuler les fichiers et les répertoires. Voici un exemple qui utilise os pour vérifier si un fichier existe et pour renommer un fichier :

import os

# Vérifier si un fichier existe
if os.path.exists("ancien_nom.txt"):
    # Renommer le fichier
    os.rename("ancien_nom.txt", "nouveau_nom.txt")
    print("Le fichier a été renommé avec succès.")
else:
    print("Le fichier spécifié n'existe pas.")

Dans cet exemple, nous utilisons os.path.exists() pour vérifier si le fichier “ancien_nom.txt” existe. Si le fichier existe, nous utilisons os.rename() pour le renommer.

Bien sûr ! Voici quelques exercices plus avancés qui explorent des fonctionnalités plus avancées de la manipulation de fichiers en Python :

Exercice 6 : Lecture et écriture de fichiers CSV

Dans cet exercice, nous allons lire un fichier CSV, manipuler ses données et écrire les résultats dans un nouveau fichier CSV.

import csv

# Lire le fichier CSV
with open('donnees.csv', mode='r') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv)
    lignes = list(lecteur_csv)

# Manipuler les données
for ligne in lignes:
    ligne[1] = float(ligne[1]) * 1.1  # Augmenter toutes les valeurs de la deuxième colonne de 10%

# Écrire les résultats dans un nouveau fichier CSV
with open('resultats.csv', mode='w', newline='') as fichier_resultats:
    ecrivain_csv = csv.writer(fichier_resultats)
    ecrivain_csv.writerows(lignes)

Dans cet exemple, nous utilisons le module csv pour lire les données à partir d’un fichier CSV, puis nous modifions les valeurs de la deuxième colonne avant d’écrire les résultats dans un nouveau fichier CSV.

Exercice 7 : Utilisation du module shutil pour copier des fichiers

Dans cet exercice, nous allons utiliser le module shutil pour copier un fichier dans un répertoire différent.

import shutil

# Copier un fichier dans un répertoire différent
source = 'fichier_source.txt'
destination = 'nouveau_repertoire/fichier_destination.txt'

shutil.copy(source, destination)

Cet exemple utilise la fonction copy() du module shutil pour copier le fichier source dans le répertoire de destination spécifié.

Exercice 8 : Lecture et écriture de fichiers JSON

Dans cet exercice, nous allons lire un fichier JSON, manipuler ses données et écrire les résultats dans un nouveau fichier JSON.

import json

# Lire le fichier JSON
with open('donnees.json', 'r') as fichier_json:
    donnees = json.load(fichier_json)

# Manipuler les données
donnees['nouvelle_cle'] = 'nouvelle_valeur'

# Écrire les résultats dans un nouveau fichier JSON
with open('resultats.json', 'w') as fichier_resultats:
    json.dump(donnees, fichier_resultats)

Ici, nous utilisons les fonctions load() et dump() du module json pour lire et écrire des données JSON respectivement.

Ces exercices avancés devraient vous donner une meilleure compréhension des fonctionnalités avancées de manipulation de fichiers en Python. N’hésitez pas à les expérimenter et à les adapter à vos propres projets pour mieux comprendre leur fonctionnement.

Voici quelques cas particuliers intéressants à considérer lors de la manipulation de fichiers en Python :

Cas particulier 1 : Fichiers volumineux

Lorsque vous travaillez avec des fichiers volumineux, il est important de prendre en compte les performances de votre code. Par exemple, lire un fichier volumineux ligne par ligne plutôt que de charger tout le contenu en mémoire peut économiser de la mémoire et améliorer les performances.

with open('fichier_volumineux.txt', 'r') as fichier:
    for ligne in fichier:
        # Traiter chaque ligne du fichier
        pass

Dans cet exemple, nous utilisons une boucle pour lire chaque ligne du fichier volumineux une à une, évitant ainsi de charger le fichier entier en mémoire.

Cas particulier 2 : Fichiers binaires

Lors de la manipulation de fichiers binaires, il est important de spécifier le mode d’ouverture approprié (par exemple ‘rb’ pour la lecture de fichiers binaires et ‘wb’ pour l’écriture de fichiers binaires).

with open('fichier_binaire.bin', 'rb') as fichier:
    contenu = fichier.read()
    # Traiter le contenu binaire

Ici, nous ouvrons le fichier en mode lecture binaire (‘rb’) pour lire le contenu du fichier binaire.

Cas particulier 3 : Fichiers avec encodage spécifique

Certains fichiers peuvent avoir des encodages spécifiques. Il est important de spécifier l’encodage correct lors de la lecture ou de l’écriture de ces fichiers pour éviter les erreurs de décodage.

with open('fichier_iso_8859_1.txt', 'r', encoding='iso-8859-1') as fichier:
    contenu = fichier.read()
    # Traiter le contenu avec l'encodage iso-8859-1

Dans cet exemple, nous spécifions l’encodage ‘iso-8859-1’ lors de la lecture du fichier pour traiter correctement son contenu.

Cas particulier 4 : Fichiers texte avec gestion des fins de ligne universelles

Certains fichiers peuvent avoir différents styles de fin de ligne, comme “\n” (Unix), “\r\n” (Windows) ou “\r” (Mac OS). Vous pouvez utiliser le paramètre newline pour gérer les fins de ligne universelles lors de la lecture ou de l’écriture de fichiers texte.

with open('fichier_unix.txt', 'r', newline='') as fichier:
    contenu = fichier.read()
    # Traiter le contenu avec des fins de ligne universelles

Ici, nous utilisons newline='' pour gérer les fins de ligne universelles lors de la lecture du fichier.

En considérant ces cas particuliers, vous serez mieux préparé pour manipuler efficacement différents types de fichiers en Python.

Ces exercices corrigés devraient vous aider à renforcer vos compétences en manipulation de fichiers en Python. N’hésitez pas à les expérimenter et à les modifier pour mieux comprendre leur fonctionnement. La manipulation de fichiers est une compétence essentielle pour tout développeur Python, et la pratique régulière est la clé pour la maîtriser.

Autres articles

Manipulation des Tableaux en Python avec Numpy
Numpy est une bibliothèque puissante et efficace pour la manipulation...
Read more
Manipulation des Tableaux en Python - Pandas
Python propose plusieurs façons de manipuler des tableaux en Python...
Read more
Expressions Régulières - Regex en Python
Les expressions régulières (ou Regex en Python ) sont un...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *