Python peut lire toutes sortes de types de fichiers qu’ils soient enrichis ou non. Toutefois nous allons distinguer deux grandes familles de types de fichiers :
- les fichiers texte « classique » qui vont se lire et écrire avec différentes fonctions et méthode de Python.
- les fichiers json très adapté à l’utilisation conjointe avec Python que nous manipulerlons essentiellement avec le module json.
Lecture de fichiers traditionnelles
Importer le chemin
Tout d’abord, il faut spécifier à Python le chemin complet du fichier à lire à Python. Pour cela nous pouvons utiliser la module os pour assembler ce chemin, exemple :
import os
path = os.getcwd() #recupere le chemin relatif du script en cours
file = "fichier.txt"
new_path = os.path.join(path, file)
print(new_path)
>>> /home/vincent/PythonProjects/B-A-BA/fichier.txt
Ouvrir des fichiers avec la fonction open()
Cet fonction permet de stocker dans un objet le contenu d’un fichier spécifié en arguments dans un certain mode (lecture, ecriture) spécifié en second argument :
import os
path = os.getcwd()
file = "fichier.txt"
new_path = os.path.join(path, file)
f = open(new_path, "r")
print(f)
>>> <_io.TextIOWrapper name='/home/vincent/PythonProjects/B-A-BA/fichier.txt' mode='r' encoding='UTF-8'>
Les différents modes du second argument de la fonction open() :
- r : lecture.
- a : append, ajoute du contenu à la fin du fichier
- w : ecriture, écrase le contenu du fichier de destination
Fermer des fichiers avec la méthode .close()
ATTENTION, après avoir utilisé la fonction open(), il ne faut pas oublier de refermer le fichier avec la méthode .close()
import os
path = os.getcwd()
file = "fichier.txt"
new_path = os.path.join(path, file)
f = open(new_path, "r")
print(f)
f.close()
Lire et écrire dans des fichiers avec l’instruction with… as..
Cette technique est plus automatisée que la technique précédente, elle offre l’avantage de ne pas obliger l’utilisateur à fermer le fichier dans son script.
La syntaxe est similaire à celle d’un bloc conditionnel et attend également une « action » en retour (pass) :
import os
path = os.getcwd()
file = "fichier.txt"
new_path = os.path.join(path, file)
with open(new_path, "r") as f :
pass
Récupérer le contenu du fichier avec la méthode .read()
Avec cette structure, pour lire le contenu d’un fichier on peut utiliser la méthode .read() puis la stocker dans une variable :
import os
path = os.getcwd()
file = "fichier.txt"
new_path = os.path.join(path, file)
with open(new_path, "r") as data :
contenu = data.read()
print(contenu)
>>> Python
>>> est
>>> un
>>> super
>>> langage
>>> de
>>> programmation
Si le script est susceptible d’être exécuté sous windows, la methode de lecture de fichier with… as… nécessite de spécifier le type d’encodage de lecture/écriture afin afin d’éviter des problèmes :
import os
path = os.getcwd()
file = "fichier.txt"
new_path = os.path.join(path, file)
with open(new_path, "r", encoding="ut8") as data :
contenu = repr(data.read())
print(contenu)
Comme d’hab… merci Windows…

0 commentaire