Comment lire un simple fichier texte en python ?

Comment lire un simple fichier texte en python ?

Daidalos 19 février 2014


Exemple de comment lire un simple fichier texte en python:

Lire un fichier texte

Soit par exemple le fichier suivante iso_8859-1.txt. Pour lire ce fichier on peut alors faire comme ceci:

f = open('iso_8859-1.txt', 'r')

f.closed

Lire l'ensemble du fichier

Si on veut lire l'ensemble du fichier il suffit d'ajouter la commande f.read():

f = open('iso_8859-1.txt', 'r')
data = f.read()
f.close

et on peut ensuite afficher son contenu:

print(data)

donne

The following are the graphical (non-control) characters defined by
ISO 8859-1 (1987).  Descriptions in words aren't all that helpful,
but they're the best we can do in text.  A graphics file illustrating
the character set should be available from the same archive as this
file.

Hex Description                 Hex Description

20  SPACE
21  EXCLAMATION MARK            A1  INVERTED EXCLAMATION MARK
22  QUOTATION MARK              A2  CENT SIGN
    ...
    ...
    ...
    ...

Afficher les lignes et les indices

On peut alors parcourir le contenu ligne par ligne en utilisant splitlines():

lines = data.splitlines()

for idx,line in enumerate(lines):
    print(idx,line)

donne

0 The following are the graphical (non-control) characters defined by
1 ISO 8859-1 (1987).  Descriptions in words aren't all that helpful,
2 but they're the best we can do in text.  A graphics file illustrating
3 the character set should be available from the same archive as this
4 file.
5 
6 Hex Description                 Hex Description
7 
8 20  SPACE
9 21  EXCLAMATION MARK            A1  INVERTED EXCLAMATION MARK
10 22  QUOTATION MARK              A2  CENT SIGN
11 23  NUMBER SIGN                 A3  POUND SIGN
    ...
    ...
    ...
    ...

Lire le fichier ligne par ligne

Autre approche en utilisant "readline()":

print( 'line 1: ',  f.readline() )
print( 'line 2: ',  f.readline() )
print( 'line 3: ',  f.readline() )

Note: chaque fois que vous faites appelle à "readline()" il passe à la ligne suivante. Pour revenir au début du fichier vous pouvez alors utiliser la "method": "seek()" comme ceci:

f.seek(0)

Pour terminer, pour obtenir le nombre de lignes du fichier et en affichant en même temps ligne par ligne le contenu de celui-ci, on peut écrire une simple boucle "for":

NumberOfLine = 0
for line in f:
    print( line )
    NumberOfLine += 1

Lire un fichier de données

Pour lire un fichier de données il existe plusieurs possibilités:

Références

Links Site
Page sur le site de python: "Input and Output" python doc
How to get line count cheaply in Python? stackoverflow
C'est quoi le ascii ? wikipedia