Lecture et écriture dans un fichier (en Python)

Pourquoi faire ?


En programmation, il est souvent utile de séparer le fichier contenant le programme des fichiers contenant des données utiles au programme. Ces fichiers peuvent servir comme données initiales mais aussi comme résultats du programme.

C’est pourquoi, il est très important de pouvoir manipuler les fichiers de texte par des commandes Python.

Création d’un fichier de résultat


Voici un exemple d’utilisation :

# -*- coding:utf-8 -*-

fichier1=open('monfichier.txt','w')
fichier1.write("n" +"\t"+"n^2"+"\n")
for i in range(10):
    fichier1.write(str(i) +"\t"+str(i**2)+"\n")
fichier1.close()

La lettre w signifie que le fichier est ouverte en écriture. Cela a deux conséquences capitales à retenir :
– si le fichier monfichier.txt n’existe pas, celui-ci est créé.
– si le fichier monfichier.txt existe déjà, celui-ci est effacé : toutes ses données actuelles seront perdues.

Utilisation d’un fichier de données


Reprenons le fichier précédemment créé pour sa lecture complète :

fichier2=open('monfichier.txt','r')
print fichier2.read()
fichier2.close()

qui renvoie comme résultat

>>>
n n^2
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81

La lettre r signifie que le fichier est ouverte en lecture.

La commande read() peut prendre comme argument un nombre désignant le nombre de caractères à lire à partir de la position courante. Ceci peut servir dans le cas du traitement par blocs des fichiers de grandes tailles.

On peut aussi préférer une lecture par ligne en utilisant la commande readline().

Pour en savoir plus, voici quelques lignes :
version anglaise
version française