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

Laisser un commentaire