Gestion des fichiers
Echange de données entre plusieurs programmes
Permet de stocker des ensembles d'informations appelés "enregistrement"
Conserver des données à la fermeture d'une application
Récupérer des données à l'ouverture d'une application
- Utilisation séquentielle (ligne par ligne)
- Préliminaires
Tout d’abord, il faut définir le répertoire dans lequel les fichiers seront stockés, pour cela, on a besoin d’importer les fonctions de la librairie os, il faut écrire en haut du programme :
from os import *
Puis :
chdir('C:\CheminRepertoire’)
Pour définir le dossier dans lequel on veut travailler.
Pour afficher le dossier courant :
print getcwd()
- Ouverture/Création d’un fichier
Fichier=file(NomFichier.type, mode)
#Type est l'extension, .txt pour un fichier texte classique
#mode est un mode d'ouverture
Modes :
– 'r' : le ficher existe déjà, ouverture en lecture seule
– 'w' : le fichier est ouvert en écriture seule, s'il existe déjà, il est tronqué et écrasé ; il est créé sinon.
– 'a' : le fichier est ouvert en écriture seule. S'il existe son contenu est conservé et les données ajoutées à la suite; il est créé sinon.
– 'r+' : le fichier doit déjà exister, est ouvert en lecture et écriture.
– 'w+' : le fichier est ouvert en lecture et en écriture, s'il existe déjà, il est tronqué et écrasé ; il est créé sinon.
Il est important de toujours fermer les fichiers après utilisation :
NomFichier.close()
- Lecture des lignes
En mode séquentiel, on lit les lignes les unes après les autres :
Ligne=NomFichier.readline()
Nous allons donner un exemple : Le fichier Premier.txt, dans le dossier ‘D:\Dossier Nombres’ contient la liste des nombres premiers entre 1 et 10 ; contenu du fichier :
2
3
5
7
Nous voulons lire le contenu de ce fichier dans notre programme :
from os import *
chdir('D:\Dossier Nombres')
Liste=file('Premier.txt','r')
Ligne=Liste.readline()
while Ligne<>"":
#Tant que les lignes ne sont pas vides
print Ligne
Ligne=Liste.readline()
Liste.close()
Resultat
>>>
2
3
5
7
- Ecriture dans un fichier
Pour écrire dans un fichier, on utilise write(), en ayant préalablement ouvert le fichier en mode ‘w’ ou ‘w+’.
Pour aller à la ligne, on écrit dans le fichier ‘\n’
Exemple : Nous voulons ajouter dans un fichier la lise des nombres premiers entre 1 et 10 en les indexant selon leur rang, c'est-à-dire :
1) 2
2) 3
3) 5
4) 7
Le fichier n’est pas encore créé.
from os import *
chdir('D:\Dossier Nombres')
fichier=file('Premier2.txt','w')
fichier.write('1) 2'+'\n')
fichier.write('2) 3'+'\n')
fichier.write('3) 5'+'\n')
fichier.write('4) 7'+'\n')
fichier.close()
Resultat
1) 2
2) 3
3) 5
4) 7