Les fichiers Professeur : Melle Héla Trabelsi
Définition :
Un fichier est un ensemble structuré de données homogènes (de même type), nommé et
enregistré sur un support de stockage (disque dur, cd, …). Il peut contenir du texte, des
enregistrements, des programmes et/ou des valeurs d’une façon permanente.
En programmation on a deux types de fichier :
Fichier texte : éditable avec un éditeur de texte, permet d’enregistrer des chaines de
caractères.
Fichier typé (binaires ou de données) : illisible par l’homme, mais pouvant mémoriser tout
type d’objet (Entier, réel, etc.. des enregistrements).
Le nom logique d’un fichier représente la variable de type fichier utilisé dans le programme,
cependant le nom physique est le nom avec lequel est enregistré sur le support de stockage.
Les fichiers de données : (fichier typé ou fichier binaires)
En programmation, un fichier typé est une séquence organisée d'enregistrements (ou de données
typées) représentant un ensemble d'entités de même type.
Organisation :
C’est la façon dont les enregistrements sont placés dans le fichier. Elle détermine la méthode de
manipulation des informations du fichier, qu'on appelle méthode d'accès.
- Les données dans un fichier typé sont enregistrées les uns à la suite des autres, de façon
linéaire.
- Les numéros d'ordres commencent par 0, c-à-d l’enregistrement 1 admet le numéro
d’ordre 0.
- En python, Les numéros d’ordres sont de la forme i*taille de l’objet écrite avec i de 0 à n-1
Classe : 4ème année SI 1 2023/2024 Page 1
Les fichiers Professeur : Melle Héla Trabelsi
Déclaration
Méthodes d’accès :
Accès séquentiel :
Pour accéder à l’ième enregistrement d'un fichier, on doit passer par l’ième -1 d'abord.
L'organisation correspondante est dite séquentielle ou consécutive.
Accès direct :
On accède directement à l’ième enregistrement d'un fichier par l'intermédiaire d’un numéro
d’ordre. L'organisation correspondante est dite directe.
Manipulation des fichiers typés:
a) Ouverture :
Syntaxe :
En algorithme En Python
Ouvrir(″chemin\nom_physique″, nom_logique,″mode″) Nom_logique= open(″chemin\nom_physique″, ″mode″)
Avec mode d’ouverture égal à :
"rb" : Lecture (pointer au début)
"wb" : Ecriture (création)
"ab" : Ajout à la fin du fichier
Exemples :
En algorithme En Python
Ouvrir(″D:\4si\travail.dat″, F,″wb″) F= open(″C:\4si\travail.dat ″, ″wb″)
Classe : 4ème année SI 1 2023/2024 Page 2
Les fichiers Professeur : Melle Héla Trabelsi
b) Lecture :
Lecture à partir d’un fichier déjà ouvert en mode lecture.
Syntaxe
En algorithme En Python
Lire(nom_logique,objet) from pickle import *
objet= load(nom_logique)
Exemple
En algorithme En Python
Lire(F,x) from pickle import *
x= load(F)
A chaque opération de lecture ou d’écriture d’une valeur, le pointeur du fichier avance
automatiquement d’une position
c) Ecriture dans un fichier :
Ecriture dans un fichier déjà ouvert en mode écriture.
Syntaxe
En algorithme En Python
Ecrire(nom_logique,objet) from pickle import *
dump(objet,nom_logique)
Exemple
En algorithme En Python
Ecrire(F,x) from pickle import *
dump(F,x)
d) Test de fin fichier :
A chaque moment nous pouvons tester si nous avons atteint la fin d’un fichier en lecture.
Syntaxe :
En algorithme En Python
Fin_fichier(nom_logique) Fin_fichier = False
while not (Fin_fichier) :
try :
x = load (Nom_logique)
except : # si fin fichier on arrête l’exécution
Fin_fichier = True
e) Fermeture
Syntaxe
En algorithme En Python
Fermer(nom_logique) Nom_logique.close()
Exemple
En algorithme En Python
Fermer(F) F.close()
Classe : 4ème année SI 1 2023/2024 Page 3
Les fichiers Professeur : Melle Héla Trabelsi
Application 1 :
On désire créer un fichier nommé « D:/Donnees.dat » pour stocker la liste des données de N
élèves (avec 5<N<40). Les données sont composées de :
- Nom_Prénom : chaine de longueur maximale 30
- Age : Entier entre 10 et 20
- Résultat : caractère "A" (Admis) ou "C" (Contrôle) ou "R" (Refusé)
Ecrire un programme python qui permet de créer, remplir le fichier puis afficher le
pourcentage de chaque type de résultat.
Application 2 :
Un entier est dit cubique ou d’Armstrong s’il est égal à la somme des cubes de ses chiffres comme 153.
En fait 153 est cubique car 153 = 153=13+53+33
Questions :
1. Ecrire l’algorithme d’un module qui permet de remplir un fichier nommé Nombres.dat par N
entiers positifs de 3 chiffres chacun, avec (4<N≤20)
2. Ecrire l’algorithme d’un module qui permet d’afficher chaque entier d’Armstrong qui se trouve
dans le fichier suivi de son numéro d’ordre dans le fichier.
3. Implémenter l’app1 en pyhton
Exemple : Pour N =5 et le fichier Nombres.dat suivant:
Application 3 :
1) On désire créer un fichier de données pour stocker la liste des notes des élèves d’une
classe dans le fichier « D:\notes.bin »
Ecrire l’algorithme de la procédure Remplir (@F : Fich) pour chacune des opérations
suivantes :
a. Ecriture d’une seule note dans le fichier des élèves.
b. Ecriture de N notes dans le fichier des N élèves. (N données)
c. Ecriture dans le fichier des élèves jusqu’à ce que l’utilisateur saisie une note négative.
d. Ecriture dans le fichier des élèves jusqu’à ce que l’utilisateur demande d’arrêter la
saisie.
2) Reprenons le fichier de 1) pour écrire l’algorithme d’un module pour chacune des
opérations suivantes :
a. Afficher la liste des notes sur écran.
b. Afficher la meilleure note ainsi que la moyenne des notes.
c. Afficher l’existence d’une donnée X dans le fichier.
d. Trier le fichier dans l’ordre décroissant des notes.
Classe : 4ème année SI 1 2023/2024 Page 4