0% ont trouvé ce document utile (0 vote)
14 vues65 pages

Fonction open() en Python

Ce document traite de la gestion des fichiers et des exceptions en Python. Il présente les concepts de base de la gestion des fichiers tels que l'ouverture, la lecture et l'écriture dans des fichiers. Il aborde également les différents modes d'ouverture des fichiers, la lecture et l'écriture dans des fichiers CSV et ZIP. La deuxième partie du document est consacrée à la gestion des exceptions en Python.

Transféré par

m.assannam
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues65 pages

Fonction open() en Python

Ce document traite de la gestion des fichiers et des exceptions en Python. Il présente les concepts de base de la gestion des fichiers tels que l'ouverture, la lecture et l'écriture dans des fichiers. Il aborde également les différents modes d'ouverture des fichiers, la lecture et l'écriture dans des fichiers CSV et ZIP. La deuxième partie du document est consacrée à la gestion des exceptions en Python.

Transféré par

m.assannam
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Gestion de fichiers et Gestion des Exceptions en Python

Master Systèmes Embarqués et Services Numériques


2023-2024

Présenté par : Encadré par :


R’idwane ANDAMM Prof: Azzedine Dliou
Othman RIDOUANE
M’bark ASSANNAM
Plan :
I. Gestion des fichiers
[Link]ésentation
[Link] un fichier
[Link] un fichier
[Link] dans un fichier
[Link] des fichiers
[Link] sur des fichiers et répertoires
II. Gestion des exceptions
[Link]
[Link] des Exceptions
[Link]éation des Exceptions personnalisées
[Link]
Gestion des fichiers

1
[Link] des fichiers
[Link]ésentation :
•Nous avons vu jusqu’au l’instant (dans les exposés passés), que pour stocker
les données en python, nous utilisons des variables (comme int, string, ….) ou
des structures de données (chaines, listes, dictionnaires,…),

•Ce type de stockage, malgré qu’il est très pratique car il nous permet de
manipuler nos données très facilement il n’est pas toujours le meilleur outil
pour stocker des données. car, ces données sont perdues à la fin du
programme (volatiles).

• Nous avons donc besoin d’une autre manière complémentaire, qui va nous
permettre de stocker les données d’une manière permanente, parmi les
manières utilisées pour cet’ objectif, utilisation de fichiers
[Link] des fichiers
[Link]ésentation :
 c’est quoi un fichier ?
• Un fichier fait référence à une partie de la mémoire (non volatile) qui
représente une information.

• Cette partie de mémoire peut prendre différentes formes : un document


texte, une image, du son, une vidéo, un exécutable…,

• A la fin du compte , cette information est stockée de la même manière : une


séquence de bits (0 ou 1) qu'il faut interpréter par la machine pour obtenir
l'information compréhensible par un utilisateur humain.
[Link] des fichiers
[Link]ésentation :
 Différentes types de fichiers:

• On distingue couramment deux types de fichiers, qui seront manipulés à


des niveaux différents :

un fichier texte est constitué d'une séquence de caractères,


permettant de stocker une chaine de caractères sur disque.
un fichier binaire est constitué d'une séquence de bits, organisés en
paquets de huit, appelés octets. (ex: les fichiers ,png, jpg, fichiers vidéo)
[Link] des fichiers
2. Ouverture d’un fichier :
 la fonction open() :
• Elle permet de récupérer un descripteur qui va nous permettre de réaliser les
opérations de lecture et/ou d’écriture dans le fichier
Syntaxe :
open("[Link] ")
• A la fin du traitement d’un fichier, il faut fermer le descripteur du fichier avec la
méthode close()
Syntaxe :
f = open("[Link]")
# faire des opérations sur le contenu du fichier
[Link]()
• La non fermeture du descripteur de fichier cause une fuite de ressources (resource
leak).
[Link] des fichiers
2. Ouverture d’un fichier
 la fonction open() avec la syntaxe with :
•Parce qu'on oublie souvent de fermer le descripteur avec la méthode close(),
python nous offre une syntaxe spéciale pour éviter la fuite de ressources :

with open("[Link]") as f:
# faire des opérations sur le contenu du fichier
pass

• La syntaxe with appelle automatiquement la méthode close() du descripteur de


fichier à la sortie du bloc (même si la sortie du bloc est due à une erreur).
[Link] des fichiers
2. Ouverture d’un fichier
 Modes d’ouvertures de fichiers :
• Lorsqu’on ouvre un fichier, il faut préciser le mode d’ouverture qui dépend
du type du fichier et des opérations que l’on souhaite réaliser.
• Le mode est représenté par une chaîne de caractères qui est passée à la
fonction open() avec le paramètre mode.
Syntaxe :
open(" [Link]", mode="w")

• Si aucun mode n’est spécifié, le fichier s’ouvre avec le mode par défaut ‘r’,
(mode en lecture)
[Link] des fichiers
2. Ouverture d’un fichier
 Modes d’ouvertures de fichiers :
Mode Description
r ouverture en lecture (mode par défaut)
w ouverture en écriture (efface le contenu précédent)
ouverture uniquement pour création (l’ouverture échoue si le
x
fichier existe déjà)
+ ouverture en lecture et écriture
a ouverture en écriture pour ajout en fin de fichier
b fichier binaire
t fichier texte (mode par défaut)
[Link] des fichiers
2. Ouverture d’un fichier
 Modes d’ouvertures de fichiers :
Exemples :
1- Ouverture en écriture:
with open("[Link]", mode="w") as f:
#instructions …..
2 -Ouverture d'un fichier binaire en création:
with open("[Link]", mode="xb") as f:
#instructions …..
3-ouverture d’un fichier en texte en lecture (mode par défaut) :
with open("[Link]", mode= "rt") as f:
#instructions …..
équivalent à
with open("[Link]") as f:
[Link] des fichiers
2. Ouverture d’un fichier
 Modes d’ouvertures de fichiers :
Exemples :
4- Le mode r+ permet d’ouvrir un fichier à la fois en lecture et en écriture.
Le pointeur de fichier est placé au point de départ du fichier
with open("[Link]", mode="r+") as f:
#instructions …..
5 -Le mode w+ ouvre le fichier en lecture et en écriture.
Si le fichier existe déjà, il est tronqué, S’il n’existe pas un nouveau fichier est créé .
Le pointeur de fichier est placé au point de départ du fichier.
with open("[Link]", mode= "w+") as f:
#instructions …..
[Link] des fichiers
3. Lire le contenu d’un fichier
 Obtenir le contenu du fichier dans une chaîne de caractères:
•Syntaxe:

with open("[Link]") as f:
contenu = [Link]()
print(contenu)
Résultat :
ligne1_Mot1 ligne1_Mot2 ligne1_Mot3 ligne1_Mot4

ligne3_Mot1 ligne3_Mot2 ligne3_Mot3 ligne3_Mot4


ligne4_Mot1 ligne4_Mot2 ligne4_Mot3 ligne4_Mot4
ligne5_Mot1 ligne5_Mot2 ligne5_Mot3 ligne5_Mot4
[Link] des fichiers
3. Lire le contenu d’un fichier
 Obtenir le contenu du fichier sous la forme d’un tableau de chaînes
de caractères (un élément par ligne) :
•syntaxe:
with open("[Link]") as f:
lignes = [Link]()
print("Nbr de lignes dans le fichier :" ,len(lignes))
print ("-------------------------------------")
print("la 1ere ligne :\n",lignes[0])
Résultat :
Nbr de lignes dans le fichier : 5
-------------------------------------
la 1ere ligne :
ligne1_Mot1 ligne1_Mot2 ligne1_Mot3 ligne1_Mot4
[Link] des fichiers
3. Lire le contenu d’un fichier
 Lire un fichier csv:
•Les fichiers CSV (Comma Separated Values) sont un format de données
couramment utilisé pour l'importation et l'exportation de grandes bases de
données.
•Grâce à son module csv , Python nous offre des outils puissants et
flexibles pour travailler avec ces fichiers;
Syntaxe :
import csv
with open(‘[Link]', 'r') as file:
reader = [Link](file, delimiter=';')
for row in reader:
print(row)
[Link] des fichiers
3. Lire le contenu d’un fichier
 Ecrire dans un fichier csv:
Syntaxe :
import csv
with open('[Link]', 'w', newline=' ') as file:
writer = [Link](file, delimiter=';')
[Link](["nom", "age"])
[Link]([[“Ahmed", 23], [“KARIM", 27]])
•[Link](file, delimiter=';') : Crée un objet writer qui peut écrire des lignes
dans le fichier CSV
•[Link]() : Écrit une seule ligne contenant les en-têtes de colonne dans le
fichier CSV
•[Link](): Écrit plusieurs lignes dans le fichier CSV
[Link] des fichiers
3. Lire le contenu d’un fichier
 Lire un fichier zip
•Les fichiers zip sont très répandus de nos jours et constituent un standard de
compression facile d’accès quelque soit l’ordinateur et son système d’exploitation.
•Le langage python propose quelques fonctions pour
compresser et décompresser ces fichiers
par l’intermédiaire du module zipfile
[Link] des fichiers
4. Ecrire dans un fichier :
 La méthode write():
•Pour écrire du texte dans un fichier, on utilise la méthode write():
with open("[Link]", mode="a") as f:
[Link]("\ntexte ajouté avec la méthode write")
with open("[Link]", mode="r") as f:
contenu =[Link]()
print(contenu)
Résultat :
ligne1_Mot1 ligne1_Mot2 ligne1_Mot3 ligne1_Mot4

ligne3_Mot1 ligne3_Mot2 ligne3_Mot3 ligne3_Mot4


ligne4_Mot1 ligne4_Mot2 ligne4_Mot3 ligne4_Mot4
ligne5_Mot1 ligne5_Mot2 ligne5_Mot3 ligne5_Mot4
texte ajouté avec la méthode write
[Link] des fichiers
4. Ecrire dans un fichier :
 La méthode writelines():
•Pour écrire une liste de lignes dans un fichier, on utilise la méthode
writelines():
[Link] des fichiers
4. Ecrire dans un fichier :
 Ecrire dans un fichier zip:
•Pour créer un fichier zip, le procédé ressemble à la création de n’importe quel
fichier. La seule différence provient du fait qu’il est possible de stocker le fichier à
compresser sous un autre nom à l’intérieur du fichier zip, ce qui explique les deux
premiers arguments de la méthode write. Le troisième paramètre indique si le fichier
doit être compressé ZIP_DEFLATED ou non ZIP_STORED( archivé mais non compressé).
[Link] des fichiers
5. Chemin d’un fichier:
• Les fichiers sont organisés selon une structure arborescente dans laquelle un nœud peut
être soit un fichier soit un répertoire;
• La manière d’écriture du chemin d’un fichier est différente en passant d’un SE à un autre,
• Dans la représentation des chemins de fichiers, MS-Windows utilise le caractère \ pour
séparer les composants d’un chemin tandis que les systèmes *nix et MacOs utilisent le
caractère /
exemple d’un chemin de fichier en windows :
C:\\Users\user\documents\[Link]
exemple d’un chemin de fichier en lunix
/home/user/documents/[Link]
[Link] des fichiers
5. Chemin d’un fichier:
Le module [Link] :
•Le module [Link] fournit des fonctions élémentaires pour nous aider à gérer les
chemins de fichiers :
la fonction abspath() retourne le chemin absolu d’un fichier , Exemple :

import [Link] as path

chemin = [Link]("fichier,txt")
print(chemin)

# Si le répertoire de travail est /home/user/Documents


# affiche /home/user/Documents/[Link]
[Link] des fichiers
5. Chemin d’un fichier:
Le module [Link] :
•La fonction join() crée un chemin en utilisant le séparateur approprié pour le
système , Exemple :

import [Link] as path

chemin = [Link]("fichiers", "[Link]")


print(chemin)
# Sous Windows affiche fichiers\[Link]
# Sous *nix ou MacOS, affiche fichiers/[Link]
[Link] des fichiers
5. Chemin d’un fichier
 Connaître le répertoire du travail:
• Le répertoire du travail correspond au répertoire courant au moment du
lancement de l’interpréteur Python;
• Pour récupérer le répertoire courant, on utilise la méthode getcwd() du
module os;
Syntaxe : import os
[Link]()
• On Peut aussi utiliser la méthode cwd() du Module pathlib
Syntaxe : import pathlib
[Link]()
[Link] des fichiers
6. Actions sur fichier
 Copier un fichier ou un répertoire:
• Pour copier un fichier on utilise la méthode copy() du module shutil
Syntaxe :
import shutil
[Link](source, destination)

• On peut aussi utiliser la méthode copytree() pour copier tout un répertoire


Syntaxe :
import shutil
[Link](repertoireSource, repertoireDestination)
[Link] des fichiers
6. Actions sur fichier
 Déplacer un fichier ou un répertoire:

• Pour déplacer un fichier ou un répertoire on utilise la méthode move() du


module shutil
Syntaxe :
import shutil
[Link](source, destination)
[Link] des fichiers
6. Actions sur fichier
 Supprimer un fichier ou un répertoire:
• Pour supprimer un fichier , on utilise la méthode remove() du module os
• Pour supprimer un dossier, on utilise la méthode rmtree() du module shutil ;
• On peut aussi utiliser la méthode rmdir() du Modules os & pathlib (le dossier doit
être vide, si non la méthode retourne une erreur), Voilà les syntaxes :
import shutil, os ,pathlib
[Link](fichier) #sup fichier;
[Link] ("repertoire") # dossier vide ou non
[Link]("repertoire") # dossier vide seulement
p = [Link] ("repertoire")
[Link]() # dossier vide seulement
[Link] des fichiers
6. Actions sur fichier
 Rechercher des fichiers dans une arborescence:
• Pour rechercher un fichier ou des fichiers dans une arborescence , on utilise la
méthode glob() du module glob
• On peut utiliser le caractère ? pour représenter n’importe quel caractère et * pour
représenter n’importe quelle suite de caractères.
Exemple ; le code suivant affiche la liste des fichiers avec l’extention ‘txt’
dans le répertoire courant :
import glob
liste_fichiers = [Link]("*.txt")
print (liste_fichiers)
[Link] des fichiers
6. Actions sur fichier
 Lister le contenu d’un répertoire:
•La fonction listdir(repertoire) du module [Link] retourne le contenu du répertoire passé
en argument sans distinction entre les fichiers et les répertoires.
•Exemple : lister le contenu de dossier courant
II. Gestion des Exceptions
C’est quoi une exception ?

Les exceptions peuvent être dues :


►à une erreur de programmation.
►à un utilisateur qui rentre de mauvaises valeurs.
II. Gestion des Exceptions
Contexte général :

Utilisateur Machine Programmeur

Les exceptions peuvent être dues :


►à une erreur de programmation.
►à un utilisateur qui rentre de mauvaises valeurs.
II. Gestion des Exceptions

Comment éviter les erreurs ???


Comment éviter les erreurs ???
Problématique :
Une solution pour éviter les erreurs est d’empêcher qu’elles se
produisent.

on va tester les différents cas d’erreurs pour les écarter.

il est difficile d’envisager tous les cas d’erreurs.


Il est difficile de prévoir des instructions spécifiques.
: cela peut rendre le code complexe et lourd
II. Gestion des Exceptions
Pourquoi une exception ?
Pour séparer :

Code métier Code de gestion des erreurs

Pour améliorer la lisibilité du code source


II. Gestion des Exceptions
C’est quoi une exception ?
 C’est un mécanisme de gestion des erreurs

 Elle permet d’empêcher le programme de s'arrêter et faire des


traitements personnalisés en cas d'erreur.
II. Gestion des Exceptions
Traiter un exception : c’est …

« Bon, effectue ces actions. Si jamais il y a une erreur à


l’intérieur, traite-la comme ceci. »
II. Gestion des Exceptions
Notions :

Une exception est dite levée lorsqu’une erreur apparaıt.


Une exception est dite capturée lorsqu’elle est gérée et traitée.
II. Gestion des Exceptions
Exceptions en python :
En cas d’erreur dans un
>>> L = [6 , 4, 7, 2, 1, 8] shEL
L
programme, Python lève une
>>> L[6] exception.
II. Gestion des Exceptions
Exceptions en python :
En cas d’erreur dans un
>>> L = [6 , 4, 7, 2, 1, 8] shEL
L
programme, Python lève une
>>> L[6] exception.
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
IndexError: l i s t index out o f range • Il faut lire en détail les messages
erreurs!
• La cause de l’erreur y est souvent
clairement indiquée
II. Gestion des Exceptions
Exceptions en python :
En cas d’erreur dans un
>>> L = [6 , 4, 7, 2, 1, 8] shEL
L
programme, Python lève une
>>> L[6] exception.
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
IndexError: l i s t index out o f range • Il faut lire en détail les messages
>>> [Link](5) erreurs!
• La cause de l’erreur y est souvent
clairement indiquée
II. Gestion des Exceptions
Exceptions en python :
En cas d’erreur dans un
>>> L = [6 , 4, 7, 2, 1, 8] shEL
L
programme, Python lève une
>>> L[6] exception.
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
IndexError: l i s t index out o f range • Il faut lire en détail les messages
>>> [Link](5) erreurs!
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
• La cause de l’erreur y est souvent
ValueError: 5 i s not in l i s t clairement indiquée
II. Gestion des Exceptions
Exceptions en python :
En cas d’erreur dans un
>>> L = [6 , 4, 7, 2, 1, 8] shEL
L
programme, Python lève une
>>> L[6] exception.
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
IndexError: l i s t index out o f range • Il faut lire en détail les messages
>>> [Link](5) erreurs!
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
• La cause de l’erreur y est souvent
ValueError: 5 i s not in l i s t clairement indiquée
>>> 2/0
II. Gestion des Exceptions
Exceptions en python :
En cas d’erreur dans un
>>> L = [6 , 4, 7, 2, 1, 8] shEL
L
programme, Python lève une
>>> L[6] exception.
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
IndexError: l i s t index out o f range • Il faut lire en détail les messages
>>> [Link](5) erreurs!
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
• La cause de l’erreur y est souvent
ValueError: 5 i s not in l i s t clairement indiquée
>>> 2/0
Traceback (most recent c a l l l a s t ) :
File "<console>", line 1, in <module>
ZeroDivisionError: division by zero

Comment attraper une exception sur python ?


II. Gestion des Exceptions
Types d’exceptions :
• Python offre une variété de
types d'exceptions prédéfinis.

• Chacun de ces types


d'exceptions correspond à un
type spécifique d'erreur qui
peut survenir pendant
l'exécution du programme.

[Link]
II. Gestion des Exceptions
Les bases de la gestion des exceptions :
Pour gérer les exceptions en Python, vous utilisez les blocs try et except. Voici la syntaxe de base :
II. Gestion des Exceptions
Les bases de la gestion des exceptions :
►Dans un bloc try, on lance un code qui peut lever une exception.
►Si aucune exception n’est levée, on passe à la suite du programme.
►Si une exception est levée dans le bloc try :
►on interrompt le bloc try à partir de l’exception

try:

instruction # Bloc try


instruction # Calcul qui peut
instruction # lever des exceptions
except:
instruction # Bloc except : Exécute
instruction # seulement s i une exception
instruction # a é té levée dans l e Bloc 1
instruction # Suite du programme
II. Gestion des Exceptions
Exemple 1 : ZeroDivisionError
II. Gestion des Exceptions
Exemple 1 : ZeroDivisionError

►Dans un bloc try, on lance un code qui peut lever une exception.
►Si aucune exception n’est levée, on passe à la suite du programme.
►Si une exception est levée dans le bloc try :
►on interrompt le bloc try à partir de l’exception
II. Gestion des Exceptions
Exemple 2: ValueError
II. Gestion des Exceptions
Exemple 2: ValueError
II. Gestion des Exceptions Utilisation de plusieurs blocs except

Lors de la gestion des exceptions en Python, il est possible d'utiliser plusieurs blocs except
pour gérer différents types d'exceptions dans un même code.
Cette approche est utile lorsque vous avez des scénarios où plusieurs types d'erreurs peuvent
survenir, et vous souhaitez prendre des mesures spécifiques pour chaque type d'erreur.
Exemple 1: Gérer les erreurs de division par zéro et les erreurs de fichiers dans le même code :

Dans cet exemple, nous utilisons deux blocs except


pour gérer les exceptions ZeroDivisionError et
FileNotFoundError. Si une exception est levée, le bloc
except approprié est exécuté.
Notez que le dernier bloc except Exception as e est
utilisé pour gérer toute autre exception imprévue qui
n'est pas spécifiquement traitée. Cela permet de
capturer les erreurs inattendues.
L'utilisation de plusieurs blocs except vous permet de
personnaliser la gestion des erreurs pour différents
scénarios, ce qui rend votre code plus robuste.
II. Gestion des Exceptions

Blocs else et finally Les blocs else et finally offrent des fonctionnalités avancées pour la gestion des exceptions en Python.
Bloc else : Il est utilisé pour exécuter un code lorsque aucune exception n'est levée dans le bloc try. Cela permet
d'isoler le code qui doit s'exécuter en cas de succès.
Bloc finally : Il est utilisé pour exécuter un code quel que soit le résultat du bloc try. C'est utile pour le nettoyage
de ressources, telles que la fermeture de fichiers.
L'utilisation de ces blocs permet un meilleur contrôle des flux d'exécution, de la gestion des erreurs et du
nettoyage des ressources, améliorant la robustesse de votre code.
II. Gestion des Exceptions
Les bases de la gestion des exceptions :
II. Gestion des Exceptions
Exemple 3 : utilisation de try except finaly
II. Gestion des Exceptions
Exemple 4: IndexError
II. Gestion des Exceptions
Comment lever une exception ?
Pour lever des exceptions manuellement, on peut utiliser le mot-clé: raise
Par exemple :

►Permet de préciser le type d’erreur


►par exemple : ValueError, IndexError, ZeroDivisionError
►Permet d’ajouter un message clair et explicatif.
II. Gestion des Exceptions
Autres exemple de raise:
II. Gestion des Exceptions

Définir ses propres exceptions


II. Gestion des Exceptions
Définir ses propres exceptions :

• Les exceptions sont des objets comme les autres, donc définies par
des classes comme les autres

• Pour définir sa propre exception, il faut créer une classe qui dérive d’une classe
d’exception existante.

Les exceptions en Python suivent une hiérarchie


II. Gestion des Exceptions
[Link]

Python Exception Hierarchy


Une :
sous classe est un cas particulier
II. Gestion des Exceptions
[Link]

Python Exception Hierarchy


Une :
sous classe est un cas particulier
II. Gestion des Exceptions
[Link]

Python Exception Hierarchy


Une :
sous classe est un cas particulier
II. Gestion des Exceptions
[Link]

Python Exception Hierarchy


Une :
sous classe est un cas particulier
II. Gestion des Exceptions
Définir ses propres exceptions :
II. Gestion des Exceptions
Définir ses propres exceptions :

Vous aimerez peut-être aussi