10 Exceptions Fichiers
10 Exceptions Fichiers
Elise Bonzon
[Link]@[Link]
1
Fichiers textuels et exceptions
2. Fichiers textuels
3. Pour conclure
2
Gestion des exceptions
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Phénomènes exceptionnels
3
Trace d’exécution
1 def f ( x ):
2 return g ( x ) + 1
3
4 def g ( x ):
5 return 1/ x
6
7 f (0)
4
Trace d’exécution
1 def f ( x ):
2 return g ( x ) + 1
3
4 def g ( x ):
5 return 1/ x
6
7 f (0)
4
Lever une exception
5
Lever une exception
5
Lever une exception
5
Lever une exception
5
Comment éviter les exceptions ?
6
Comment éviter les exceptions ?
def verif_min (i , j ) :
if i < j :
return True
else :
return False
6
Comment éviter les exceptions ?
def verif_min (i , j ) :
if i < j :
return True
else :
return False
>>> min ( ’a ’ , 2)
Traceback ( most recent call last ):
TypeError : ’ < ’ not supported between instances of ’ str ’ and ’ int ’
6
Comment éviter les exceptions ?
7
Comment éviter les exceptions ?
def verif_min (i , j ) :
if type ( i ) == type ( j ) :
if i < j :
return True
else :
return False
else :
return False
7
Comment éviter les exceptions ?
def verif_min (i , j ) :
if type ( i ) == type ( j ) :
if i < j :
return True
else :
return False
else :
return False
7
Comment éviter les exceptions ?
def verif_min (i , j ) :
if type ( i ) == type ( j ) :
if i < j :
return True
else :
return False
else :
return False
7
Gérer les exceptions
8
Gérer les exceptions
def verif_min (i , j ) :
try :
if i < j :
return True
else :
return False
except :
return False
8
Gérer les exceptions
def verif_min (i , j ) :
try :
if i < j :
return True
else :
return False
except :
return False
8
Gestion des des exceptions : syntaxe
try :
< sequence_instructions1 >
except :
< sequence_instructions2 >
9
Gestion des des exceptions : syntaxe
try :
< sequence_instructions1 >
except :
< sequence_instructions2 >
9
Gestion des des exceptions : syntaxe
try :
< sequence_instructions1 >
except :
< sequence_instructions2 >
9
Gestion des des exceptions particulières
10
Gestion des des exceptions particulières
10
Gestion des des exceptions particulières
try :
< sequence_instructions1 > # s é quence normale d ’ ex é cution
except < type_exception1 > :
< sequence_instructions2 > # traitement de l ’ exception 1
except < type_exception2 > :
< sequence_instructions3 > # traitement de l ’ exception 2
...
else :
# bloc d ’ instruction ex é cut é en l ’ absence d ’ erreurs
< sequence_instruction4 >
10
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
11
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
11
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
11
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
11
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
except :
print ( " Une autre erreur a é t é trouv é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
12
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
except :
print ( " Une autre erreur a é t é trouv é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
12
Gestion des exceptions : un exemple
def div (a , b ) :
""" Int x Int --> None
Affiche le r é sultat de la division de a par b si il existe """
try :
a/b
except Z e r o D i v i s i o n E r r o r :
print ( " Une division par 0 a é t é d é tect é e " )
except :
print ( " Une autre erreur a é t é trouv é e " )
else :
print ( " pas de division par 0 " )
print ( " la division de " , a , " par " , b , " donne " , a / b )
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Les fichiers
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Les fichiers
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Les fichiers
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Les fichiers
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Les fichiers
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Les fichiers
Fichier
Fichier : collection d’informations stockées sur une mémoire de masse
(disque dur, clef usb, CD, ...). On y accède grâce à son nom (précédée
si besoin du chemin d’accès vers ce fichier.)
13
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – append
14
Ouverture d’un fichier en écriture – write
15
Ouverture d’un fichier en écriture – write
15
Ouverture d’un fichier en écriture – write
15
Ecriture séquentielle dans un fichier
16
Ecriture séquentielle dans un fichier
16
Ecriture séquentielle dans un fichier
16
Ecriture séquentielle dans un fichier
16
Ecriture séquentielle dans un fichier
16
Ecriture séquentielle dans un fichier
16
Formater les écritures
17
Formater les écritures
17
Formater les écritures
17
Formater les écritures
17
Formater les écritures
17
Un exemple : générer un fichier contenant une table de multi-
plication
def table_fichier ( n ) :
""" Int --> None
Cr é é un fichier contenant la table de multiplication de n """
# Cr é er le fichier
f_table = open ( " table " + str ( n ) + " . txt " , " w " )
# Fermeture du fichier
f_table . close ()
18
Un exemple : générer un fichier contenant une table de multi-
plication
>>> table_fichier ( n )
19
Ouverture d’un fichier en lecture
20
Ouverture d’un fichier en lecture
20
Ouverture d’un fichier en lecture
20
Ouverture d’un fichier en lecture
20
Exception à l’ouverture d’un fichier inexistant
21
Lecture séquentielle d’un fichier
22
Lecture séquentielle d’un fichier
22
Lecture séquentielle d’un fichier
22
Lecture séquentielle d’un fichier
22
Lecture séquentielle d’un fichier
22
Lecture séquentielle d’un fichier
22
Lecture séquentielle d’un fichier
23
Lecture séquentielle d’un fichier
23
Lecture séquentielle d’un fichier
23
Lecture séquentielle d’un fichier
23
Lecture séquentielle d’un fichier
2*7=
23
Lecture séquentielle d’un fichier
2*7=
# Attention , impression du caract è re \n , qui compte pour 1!
23
Lecture séquentielle d’un fichier
2*7=
# Attention , impression du caract è re \n , qui compte pour 1!
>>> ofi . close ()
23
Méthode readline()
24
Méthode readline()
def a f fi c he r _f ic h ie r ( nom ) :
""" Str --> None -- Affiche le contenu du fichier nom """
24
Méthode readline()
25
Pour conclure
Résumé du cours
Aujourd’hui, on a vu :
26