Lire un fichier
Il existe 2 façons pour ouvrir un fichier en Python :
mon_fichier = open('fichier.txt','r',encoding='utf-8')
et
with open('fichier.txt','r',encoding='utf-8') as mon_fichier:
Ces 2 façons ouvrent toutes les deux un fichier fichier.txt en lecture seule ('r') avec un encodage en UTF-8.
La ligne de code mon_fichier = open('fichier.txt','r',encoding='utf-8') affecte à mon_fichier un
objet python fournissant une interface _io.TextIOWrapper permettant d'effectuer diverses opérations sur le
fichier ouvert, dont obtenir son contenu.
La ligne with open('fichier.txt','r',encoding='utf-8') as mon_fichier: effectue la même affectation, mais
limite la validité de l'objet mon_fichier au bloc indenté immédiatement en dessous. Au-delà de ce bloc,
le fichier n'est plus ouvert et y accéder via mon_fichier provoque une erreur d'exécution.
Lorsque l'on n'utilise pas de bloc with, il convient de fermer le fichier avec la méthode close() de l'objet
mon_fichier. Si on omet cette opération, python se charge de fermer lui-même le fichier, mais seulement lorsqu'il
est certain que l'objet mon_fichier n'est plus utilisé, ce qui peut être à la fin du programme.
Ces 2 codes sont donc équivalents :
# Premier code
mon_fichier = open('fichier.txt','r',encoding='utf-8')
# des traitements...
mon_fichier.close()
# Second code
with open('fichier.txt','r',encoding='utf-8') as mon_fichier:
pass # des traitements...
Pour lire le contenu, on pourra utiliser la méthode Python readlines()
with open('fichier.txt','r',encoding='utf-8') as mon_fichier:
mon_objet = mon_fichier.readlines()
La méthode readlines() de l'objet mon_fichier affecte à mon_objet un tableau de chaînes de caractères
correspondant, dans l'ordre de lecture, aux différentes lignes du fichier texte ouvert dans mon_objet.
Il convient donc alors d'utiliser une boucle for :
with open('fichier.txt','r',encoding='utf-8') as mon_fichier:
for ligne in mon_fichier.readlines():
print(ligne)
Ainsi, chaque ligne du fichier fichier.txt sera parcourue dans la variable ligne.