Académique Documents
Professionnel Documents
Culture Documents
1. Introduction
2. Lecture des fichiers
Module : Informatique 3. Extraction des données
Classes: 1ères Années MP – PC –T
4. Écrire des données dans un fichier
Chapitre 6: Manipulation 5. Utilisation du mot-clé « with »
des fichiers Python 6. Enregistrer des objets dans des fichiers
IPEIN 2022/2023 Chapitre 6 : Les fichiers 3/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 4/40
Le répertoire courant (2/2) Lecture des fichiers (1/6)
❑ Le principe est le suivant :
❑ Le module os contient toute une série de fonctions permettant
1. On ouvre un fichier.
de dialoguer avec le système d’exploitation (os = Operating
2. On lit les lignes successivement.
System), quel que soit celui-ci (Windows, Linux. Android, ios,…)
3. On ferme le fichier.
❑ La seconde commande provoque le changement de répertoire ❑ En pratique :
(chdir =change directory). ➢ L’ouverture du fichier consiste à associer (via la fonction open)
1. >>> rep_cour = os.getcwd() un objet de type file à un fichier existant,
➢ Cet objet pointe au début du fichier et auquel on peut demander
2. >>> print(rep_cour) de lire des lignes et d’en donner le résultat.
‘c:\\Python\\Lab’ ➢ Le principe n’est pas d’aller voir à un endroit arbitraire,
contrairement à ce que l’on ferait dans un tableau/mémoire.
❑ Ici la fonction getcwd() renvoie le nom du répertoire courant
➢ open(chemin, mode) est disponible sans avoir besoin de rien
(getcwd = get current working directory).
importer. Elle prend en paramètre :
❖le chemin (absolu ou relatif) menant au fichier à ouvrir,
❖ le mode d'ouverture.
IPEIN 2022/2023 Chapitre 6 : Les fichiers 5/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 6/40
IPEIN 2022/2023 Chapitre 6 : Les fichiers 9/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 10/40
IPEIN 2022/2023 Chapitre 6 : Les fichiers 13/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 14/40
IPEIN 2022/2023 Chapitre 6 : Les fichiers 15/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 16/40
Écrire des données dans un Écrire des données dans un
fichier (2/4) fichier (3/4)
1. >>> f = open ("fichier.txt", "w") ❑ Dans l’exemple suivant, on reprend le fichier contenant les
2. >>> f.write ("Premier test d‘écriture dans un notes des étudiants,
fichier via Python ")
50 ➢ On récupère la liste des lignes et on ferme le fichier aussitôt
3. >>> f.close () après.
❑ Attention: La méthode write n'accepte en paramètre que des ➢ On ouvre ensuite un nouveau fichier dans lequel on écrit les
chaînes de caractères.
mêmes données, mais formatées différemment
➢ Pour écrire dans fichier des nombres, des scores par
exemple, ❖les données sont séparées par des virgules,
IPEIN 2022/2023 Chapitre 6 : Les fichiers 17/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 18/40
Enregistrer des objets dans des Enregistrer des objets dans des
fichiers (2/4) fichiers (3/4)
❑ On utilise la méthode « dump » du pickle pour enregistrer l'objet.
❑ Nous allons enregistrer nos objets dans le fichier « donnees ».
Son emploi est simples :
➢ C’est un fichier sans extension, généralement on doit éviter
1. import pickle
d’utiliser des extensions standards (txt, exe, py, …) 2. score = { #création d’un dictionnaire
3. "joueur 1": 5,
➢ On ouvre le fichier « donnees » en mode d'écriture binaire.
4. "joueur 2": 35,
❖Il suffit de rajouter, derrière la lettre symbolisant le mode, la 5. "joueur 3": 20,
6. "joueur 4": 2,
lettre « b » pour indiquer un mode binaire. 7. }
8. with open('donnees', 'wb') as f :
1. f = open('donnees', 'wb')
9. pickle.dump(score,f) #écreture dans f
10.
IPEIN 2022/2023 Chapitre 6 : Les fichiers 23/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 24/40
Enregistrer des objets dans des
Récupérer des objets enregistrés (1/2)
fichiers (4/4)
❑ Après l'exécution de ce code, on aura dans notre répertoire de travail ❑ Nous allons utiliser une autre méthode définie dans notre
un fichier « donnees » qui contient le dictionnaire avec les scores de
module pickle. C'est la méthode load().
quatre joueurs.
➢ Commençons par créer notre objet « f ». À sa création, on
❑ Pour enregistrer plusieurs objets, on appel de nouveau la méthode
dump avec les objets à enregistrer. lui passe le fichier dans lequel on va lire les objets.
➢ Ils seront ajoutés dans le fichier dans l'ordre des enregistrement. ❑ Puisqu'on va lire, on change de mode, on repasse en mode « r
❑ Analyser le code suivant: », et plutôt « rb » puisque le fichier est binaire.
1. >>> def aff_file(fichier):
2. with open(fichier,'rb') as f: ➢ Pour lire l'objet dans notre fichier, il faut appeler la méthode
3. print(f.read()) « load » de la classe « pickle ».
4. >>> aff_file("donnees") ❑ Elle renvoie le premier objet qui a été lu (s'il y en a plusieurs, il
5. b'\x80\x03}q\x00(X\t\x00\x00\x00 joueur 1q\x01K\x05X\t
\x00\x00\x00 joueur 3q\x02K\x14X\t\x00\x00\x00 joueur faut l'appeler plusieurs fois).
2q\x03K#X\t\x00\x00\x00 joueur 4q\x04K\x02u.'
IPEIN 2022/2023 Chapitre 6 : Les fichiers 25/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 26/40
IPEIN 2022/2023 Chapitre 6 : Les fichiers 31/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 32/40
Lecture d’image (3/3) Traitement d’image (1/2)
❑ Ses dimensions sont données par l’attribut size (sans ❑ Avant d’effectuer un traitement sur l’image, il faut décomposer cette
parenthèses, il ne s’agit pas d’une méthode, c’est un attribut) : dernière en pixels.
IPEIN 2022/2023 Chapitre 6 : Les fichiers 33/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 34/40
IPEIN 2022/2023 Chapitre 6 : Les fichiers 35/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 36/40
Écriture dans une image (2/2) En résumé
❑ On consultera bien entendu la documentation en ligne de Image ❑ On peut ouvrir un fichier en utilisant la fonction open prenant en
pour découvrir d’autres fonctions ou par les commandes suivantes: paramètre le chemin vers le fichier et le mode d'ouverture.
1. >>> dir(Image) ❑ On peut lire dans un fichier en utilisant la méthode read.
['ADAPTIVE', 'AFFINE', 'ANTIALIAS', 'BICUBIC', ❑ On peut écrire dans un fichier en utilisant la méthode write.
'BILINEAR', 'BOX', 'CUBIC', 'Callable', 'DECODERS', ❑ Un fichier doit être refermé après usage en utilisant la méthode
'DEFAULT_STRATEGY’, ... ] close.
1. >>> help(Image) ❑ Le module pickle est utilisé pour enregistrer des objets Python
Help on module PIL.Image in PIL: dans des fichiers et les recharger ensuite.
NAME ❑ Le module Image fournit un ensemble des fonctions pour le
PIL.Image traitement d’images sous Python.
DESCRIPTION
# The Python ...
IPEIN 2022/2023 Chapitre 6 : Les fichiers 37/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 38/40
Annexe 1 : Python File Methods (1/2) Annexe 1 : Python File Methods (2/2)
Method Description
Method Description
close() Close an open file. It has no effect if the file is already
closed. seek(offset,from=SEEK Change the file position to offset bytes, in reference
_SET) tofrom (start, current, end).
detach() Separate the underlying binary buffer from
the TextIOBaseand return it. seekable() Returns True if the file stream supports random
access.
fileno() Return an integer number (file descriptor) of the file.
tell() Returns the current file location.
flush() Flush the write buffer of the file stream.
truncate(size=None) Resize the file stream to size bytes. If size is not
isatty() Return True if the file stream is interactive. specified, resize to current location.
read(n) Read atmost n characters form the file. Reads till end of file writable() Returns True if the file stream can be written to.
if it is negative or None..
write(s) Write string s to the file and return the number of
readable() Returns True if the file stream can be read from. characters written.
readline(n=-1) Read and return one line from the file. Reads in at writelines(lines) Write a list of lines to the file.
most nbytes if specified.
readlines(n=-1) Read and return a list of lines from the file. Reads in at
most n bytes/characters if specified
IPEIN 2022/2023 Chapitre 6 : Les fichiers 39/40 IPEIN 2022/2023 Chapitre 6 : Les fichiers 40/40