Python lire un fichier texte ligne par ligne

Lire un fichier texte simplement et rapidement en python, se fait en quelques lignes, même en incluant les exceptions.Voici un petit tutoriel qui va vous permettre de lire un fichier texte ligne par ligne mais également avec une remontée de quelques erreurs (les plus communes) pouvant survenir lorsque l’on manipule des fichiers.

Script pour lire un fichier texte en python

Vous pouvez télécharger ce fichier qui m’a servi à faire cette petite démonstration : fichier d’exemple.

Ensuite dans le même dossier que votre fichier texte, saisir :

#!/usr/bin/python3
#Il faut utiliser python3 pour executer le script

try:
        with open('fichier.txt','r') as fic:
                for line in fic:
                        print(line, end='')
except FileNotFoundError as e:
        print('Le fichier {} n\'existe pas !'.format(e.filename))
        exit(1)
except PermissionError as e:
        print('Droit de lecture absent sur le fichier {} !'.format(e.filename))
        exit(2)
except Exception as e:
        print('Une erreur a empeché l\'ouverture du fichier : '.format(e.strerror))
        exit(3)

Explication sur le script pour lire le fichier texte

Tout d’abord, il faut commencer par exécuter le script avec python 3 (minimum), vous allez avoir à une belle erreur dans le cas où vous utilisez une version antérieure.

On va commencer par la structure en try qui va permettre d’attraper les erreurs au vol et ne pas nous laisser dans notre tristesse lorsque vous rencontrerez une erreur. Les erreurs sont les suivantes (dans l’ordre d’apparition):

  • un fichier manquant (ou nom incorrect)
  • droit de lecture sur le fichier manquant

    Vous pouvez faire un petit test en faisant sudo chmod a-r fichier.txt , pensez à remettre ensuite les droit sudo chmod a+r fichier.txt

  • enfin toute les erreurs qui pourrait intervenir, le type d’erreur s’afficherait

Une fois cette partie faite, nous allons voir l’intérieur du try :

with open('fichier.txt','r') as fic:
        for line in fic:
                print(line, end='')

Première ligne

Littéralement, avec le fichier.txt ouvert en lecture (open(‘fichier.txt’,’r’) ) que l’on va nommé fic. Pas de grande difficulté, la fonction open peut avoir d’autre attribut, mais dans le cas d’un simple lecture, ‘r’ est amplement suffisant.

Attention si vous importez le module os en début de script, vous obtiendrez de belles erreurs, en effet, dans le module os, il existe une fonction portant le même nom open mais qui n’accepte pas les mêmes options.

Seconde ligne

Le fichier précédemment ouvert sera parcouru ligne par ligne, on pourrait le traduire par « pour chaque ligne nommé line de fic, on fait »

Troisième ligne

On imprime la ligne (on affiche à l’écran) jusqu’à ce qu’il n’y ai plus de caractère (l’espace étant un caractère).

C’est sur cette ligne que vous risquez d’avoir une erreur si vous êtes en python 2.x, en effet, depuis python 3, print est devenu une fonction, dans laquelle il peut y avoir des arguments supplémentaires.

Maintenant vous savez comment lire un fichier texte ligne par ligne en python, j’ai du utiliser cette méthode (quasi similaire mais pas en python), pour l’utilisation de plusieurs fichiers texte comme base de donnée (pas de possibilité d’installer de logiciel), cette remarque est pour ceux qui pourraient se poser la question de « pourquoi faire ça ? »

Partagez et commentez.

Laisser un commentaire