Ce document constitue un support de Travaux Pratiques (TP) conçu pour les étudiants universitaires, abordant la problématique cruciale de la persistance des données à travers la manipulation de fichiers en Python. Il vise à fournir les compétences nécessaires pour stocker et traiter efficacement des informations, dépassant les limitations de l'interpréteur temporaire.
Ce TP couvre les notions fondamentales suivantes :
- La compréhension et la gestion des chemins d'accès aux fichiers et répertoires.
- La création et l'ouverture de fichiers texte pour y stocker des données.
- Les différentes méthodes de lecture du contenu d'un fichier.
Exercices TP Manipulations de fichiers Python
Télécharger PDFManipulations de fichiers en Python
Les résultats obtenus dans un interpréteur Python peuvent être parfois trop nombreux pour être copiés et traités à la main. De plus, si l'on ferme l'interpréteur, ces informations sont perdues, ce qui soulève le problème de la persistance des données. Une méthode efficace pour y remédier est de travailler avec des données stockées directement dans un fichier.
Dans ce contexte, nous nous concentrerons sur la gestion des fichiers texte (avec ou sans l'extension .txt). Sous Windows, ces fichiers correspondent à ceux qui sont directement lisibles à l'aide du Bloc-Notes.
Chemin d'accès aux fichiers
Un fichier se compose de données enregistrées sur un support physique (disque dur ou un autre périphérique de stockage comme une clé USB). On accède à un fichier grâce à son nom ainsi qu'à son chemin d'accès. Le nom du fichier peut être fourni de manière absolue (avec le chemin complet depuis la racine du système de fichiers) ou relative (son emplacement dépend alors du répertoire dans lequel le programme est exécuté).
Le module os en Python contient des fonctions essentielles permettant de dialoguer avec le système d'exploitation, quel qu'il soit. Les fonctions que nous utiliserons couramment sont les suivantes :
getcwd(): Permet de connaître le répertoire de travail actuel (Current Working Directory).chdir(chemin): Permet de modifier le répertoire de travail actuel. Elle prend en entrée une chaîne de caractères donnant le nouveau chemin d'accès.
Par défaut, Python travaille dans le répertoire à partir duquel le script a été lancé. On peut lui imposer de travailler dans un autre répertoire comme suit :
>>> import os
>>> os.getcwd()
'C:\\Python32'
>>> os.chdir('C:\\cpge\\informatique')
>>> os.getcwd()
'C:\\cpge\\informatique'Exercice 1 : Gestion des répertoires
Suivez les étapes ci-dessous en utilisant un interpréteur Python :
- 1. Ouvrez l'interpréteur Python puis interrogez-le pour trouver le chemin d'accès par défaut.
- 2. Créez un répertoire nommé "Python" dans votre bureau.
- 3. Dans le répertoire "Python", créez un sous-répertoire nommé "tp5_fichiers".
- 4. Trouvez le chemin d'accès absolu à ce répertoire "tp5_fichiers".
- 5. Reprenez l'interpréteur Python, puis modifiez le chemin d'accès par défaut pour le faire pointer vers le répertoire "tp5_fichiers".
- 6. Vérifiez que cela a fonctionné avec la fonction
getcwd().
Exercice 2 : Création d'un fichier
Exécutez les commandes suivantes dans l'interpréteur Python :
>>> fich = open('test.txt', 'w')
>>> fich.close()Vérifiez que le fichier test.txt a été créé dans le répertoire courant. La fonction open(), utilisée avec le mode 'w' (pour "write"), permet de créer un nouveau fichier ou d'écraser un fichier existant s'il porte le même nom. Il est crucial d'appeler la méthode .close() après avoir terminé les opérations sur le fichier afin de s'assurer que toutes les modifications sont écrites et que les ressources système sont libérées.
Lecture de fichiers
Pour un fichier ouvert en lecture (généralement avec le mode 'r' pour "read"), on dispose des méthodes suivantes :
.read(): Récupère toutes les données présentes dans le fichier sous forme d'une seule chaîne de caractères..readline(): Lit une seule ligne à la fois. Chaque appel de cette méthode retourne la ligne suivante jusqu'à la fin du fichier. Lorsque la fin est atteinte, la méthode retourne une chaîne vide ('')..readlines(): Retourne une liste dont chaque élément est une ligne du fichier, incluant les caractères de fin de ligne.
Foire Aux Questions (FAQ)
- Pourquoi est-il important de manipuler des fichiers en Python ?
- La manipulation de fichiers permet de stocker les données de manière persistante, c'est-à-dire que les informations ne sont pas perdues lorsque le programme se termine. Cela est essentiel pour traiter de grandes quantités de données, conserver des configurations, enregistrer des résultats ou échanger des informations entre différents programmes.
- Quelle est la différence entre un chemin d'accès absolu et un chemin relatif ?
- Un chemin d'accès absolu spécifie l'emplacement complet d'un fichier ou d'un répertoire à partir de la racine du système de fichiers (par exemple,
C:\\Users\\MonUtilisateur\\Documents\\fichier.txtsous Windows). Un chemin relatif, quant à lui, indique l'emplacement par rapport au répertoire de travail actuel du programme (par exemple,dossier\\fichier.txtsidossierest un sous-répertoire du répertoire courant). - Quelles sont les méthodes principales pour lire le contenu d'un fichier en Python ?
- Les principales méthodes sont
.read()qui retourne l'intégralité du contenu du fichier sous forme d'une chaîne unique ;.readline()qui permet de lire le fichier ligne par ligne ; et.readlines()qui retourne une liste où chaque élément est une ligne du fichier.