Travailler avec des fichiers en Python
Travailler avec des fichiers en Python
-
Objectifs
- Etre capable de commenter votre code en Python
-
Introduction
- Les fichiers sont des emplacements nommés sur le disque pour stocker les informations associées. Ils sont utilisés pour stocker en permanence des données dans une mémoire non volatile (ex. Disque dur).
- Étant donné que la mémoire vive (RAM) est volatile (qui perd ses données lorsque l’ordinateur est éteint), nous utilisons des fichiers pour une utilisation future des données en les stockant de manière permanente.
-
Utilisation des fichiers en Python
- L’utilisation d’un fichier ressemble beaucoup à l’utilisation d’un livre. Pour utiliser un livre, vous devez d’abord le trouver (à l’aide de son titre), puis l’ouvrir.
- Lorsque vous avez fini de l’utiliser, vous le refermez. Tant qu’il est ouvert, vous pouvez y lire des informations diverses, et vous pouvez aussi y écrire des annotations, mais généralement vous ne faites pas les deux à la fois.
- Dans tous les cas, vous pouvez vous situer à l’intérieur du livre, notamment en vous aidant des numéros de pages. Vous lisez la plupart des livres en suivant l’ordre normal des pages, mais vous pouvez aussi décider de consulter n’importe quel paragraphe dans le désordre.
- Tout ce que nous venons de dire des livres s’applique également aux fichiers informatiques. Un fichier se compose de données enregistrées sur votre disque dur, sur une disquette, une clef USB ou un CD-Rom. Vous y accédez grâce à son nom (lequel peut inclure aussi un nom de répertoire).
- Vous pouvez toujours considérer le contenu d’un fichier comme une suite de caractères, ce qui signifie que vous pouvez traiter ce contenu, ou une partie quelconque de celui-ci, à l’aide des fonctions servant à traiter les chaînes de caractères.
-
Noms de fichiers – le répertoire courant
- Si vous travaillez avec IDLE, vous souhaiterez donc certainement forcer Python à changer son répertoire courant, afin que celui-ci corresponde à vos attentes.
- Pour ce faire, utilisez les commandes suivantes en début de session. Nous supposons pour la démonstration que le répertoire visé est le répertoire /home/jules/exercices .
- Même si vous travaillez sous Windows (où ce n’est pas la règle), vous pouvez utiliser cette syntaxe (c’est-à-dire des caractères / et non \ en guise de séparateurs : c’est la convention en vigueur dans le monde Unix). Python effectuera automatiquement les conversions nécessaires, suivant que vous travaillez sous Mac OS, Linux, ou Windows
-
Les deux formes d’importation
- Pour utiliser les fonctions d’un module, il suffit de les importer. Mais cela peut se faire de deux manières différentes, comme nous allons le voir ci-dessous. Chacune des deux méthodes présente des avantages et des inconvénients.
-
La première méthode :
- La première ligne de cet exemple importe l’intégralité du module os, lequel contient de nombreuses fonctions intéressantes pour l’accès au système d’exploitation.
- La seconde ligne utilise la fonction
getcwd()
du moduleos
. Comme vous pouvez le constater, la fonctiongetcwd()
renvoie le nom du répertoire courant (getcwd = get current working directory
). -
La Deuxième méthode :
- Dans ce nouvel exemple, nous n’avons importé du module os que la fonction
getcwd()
. Importée de cette manière, la fonction s’intègre à notre propre code comme si nous l’avions écrite nous-mêmes. - Dans les lignes où nous l’utilisons, il n’est pas nécessaire de rappeler qu’elle fait partie du module os.
>>> import os
>>> rep_cour = os.getcwd()
>>> print rep_cour
C:\Python3\essais
>>> from os import getcwd
>>> rep_cour = getcwd()
>>> print rep_cour
C:\Python3\essais
Les types de fichiers
- Il existe deux types de fichiers qui peuvent être gérés en python, les fichiers texte normaux et les fichiers binaires (écrits en langage binaire, 0 et 1).
- Fichiers texte: Dans ce type de fichier, chaque ligne de texte se termine par un caractère spécial appelé EOL (End of Line), qui est le caractère de nouvelle ligne (‘\ n’) en python par défaut.
- Fichiers binaires: Dans ce type de fichier, il n’y a pas de terminateur pour une ligne et les données sont stockées après leur conversion en langage binaire compréhensible par machine.