Traitement séquentiel des fichiers

Gestion des fichiers

Rôle 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. Voici le 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()

>>> Résultat:

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()

>>> Résultat :

1) 2
2) 3
3) 5
4) 7
Ce document intitulé « Traitement séquentiel des fichiers » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous