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.
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.
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é.
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.
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é.
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 :
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.
shutil
pour copier des fichiersDans 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é.
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 :
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.
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.
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.
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.
Les écarts sur charges fixes permettent d'analyser les différences entre les charges fixes budgétées et…
L’écart-type est une mesure de la dispersion des données autour de la moyenne. Excel propose…
Exercice 1 : Calcul des Écarts sur Volume et Prix Contexte :Une entreprise a prévu…
1. Généralités sur le Contrôle Budgétaire Question 1 : Quel est l’objectif principal du contrôle…
Voici un QCM Contrôle de Gestion - Pilotage de la Performance bien conçu sur le…
Une fiche d’action est un outil essentiel pour planifier, suivre et gérer les tâches dans…
This website uses cookies.