0% ont trouvé ce document utile (0 vote)
148 vues21 pages

Programmation Web avec Python Avancé

Transféré par

Chekri Dina
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
148 vues21 pages

Programmation Web avec Python Avancé

Transféré par

Chekri Dina
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 PDF, TXT ou lisez en ligne sur Scribd

Ingénierie du Web Avancé (IWA)

Module 3: Programmation Python pour le développement web

Python Avancé

Département Informatique- FS Tétouan


Pr. ADIL BEN-HDECH

2021/2022 - Faculté des Sciences - Tétouan - Maroc


Sommaire

Gestion des fichiers


Module d'E/S Python
Gestion des exceptions
Les fonctions anonymes(lambda)

A.BEN-HDECH 2
Gestion
Python avancédes fichiers
Gestion des fichiers en Python
Gestion des fichiers

La première fonction que vous devez connaitre pour travailler avec des fichiers en
Python est la fonction open().
La fonction open() prend deux paramètres: le nom de fichier et le mode.
Il existe quatre modes différentes pour ouvrir un fichier:

« r » – Read (le mode par défaut) : Ouvre un fichier en lecture, renvoie une erreur si le
fichier n’existe pas
« a » – Append : Ouvre un fichier pour l’ajout, crée le fichier s’il n’existe pas
« w » – Write : Ouvre un fichier pour l’écriture, crée le fichier s’il n’existe pas
« x » – Create : Crée le fichier spécifié, renvoie une erreur si le fichier existe

En plus, vous pouvez spécifier si le fichier doit être traité en mode binaire ou texte:
« t » – Text : Valeur par défaut. Mode texte
« b » – Binary : Mode binaire (par exemple une images)

3
Gestion
Python avancédes fichiers
Gestion des fichiers en Python
Syntaxe

Pour ouvrir un fichier en lecture, il suffit de spécifier le nom du fichier:


f = open("myFile.txt", "rt")
« r » signifier en mode lecture et « t » signifier un fichier texte sont les valeurs par
défaut, vous n’avez pas besoin de les spécifier.
Lire toutes les lignes d’un fichier à la fois en utilisant readlines()
La fonction readlines de Python lit tout le contenu du fichier texte et les place dans une
liste de lignes.
file = open('file.txt', "r")
lines = file.readlines()
file.close()
for line in lines:
print(line.strip())

4
Gestion
Python avancédes fichiers
Gestion des fichiers en Python
Syntaxe

Lire un fichier ligne par ligne en utilisant la boucle While


Comme nous lisons une ligne à la fois avec readline, nous pouvons facilement gérer de
gros fichiers sans vous soucier des problèmes de mémoire.
file = open('file.txt')
line = file.readline()
while line:
print(line.strip())
line = file.readline()
file.close()
Lire un fichier ligne par ligne en utilisant un itérateur
file = open('file.txt')
for line in file:
print(line)
file.close()

5
Gestion
Python avancédes fichiers
Gestion des fichiers en Python
Syntaxe

Récupérer le chemin du répertoire courant


Pour effectuer cette tâche, nous utiliserons le module « os » en python. Il dispose
d’une méthode appelée « getcwd() » qui retournera le répertoire courant.
import os
# récupérer le chemin du répertoire courant
path = os.getcwd()
print("Le répertoire courant est : " + path)
# récupérer le nom du répertoire courant
repn = os.path.basename(path)
print("Le nom du répertoire est : " + repn)

6
Gestion
Python avancédes fichiers
Gestion des fichiers en Python

Syntaxe

Récupérer la date de modification d’un fichier


Pour récupérer la date de modification, il suffit d’appeler os.path.getmtime(path) qui
est compatible sur différent plateforme(comme Windows, Linux, Mac, etc…) et vous
obtiendrez la date de la dernière modification du fichier donnée en paramètre.
Exemple :
import os.path, time
print("Dernière modification: %s" %
time.ctime.time(os.path.getmtime("file.txt")))

Créer un répertoire
import os
os.mkdir('myDirectory')
os.mkdir('C:\\Users\\ADIL\\Desktop\\monDossier')

7
Gestion
Python avancédes fichiers
Gestion des fichiers en Python

Syntaxe

Lister tous les fichiers d'un répertoire


import os
path = '.'
files = os.listdir(path)
for name in files:
if (os.path.isfile(name)):
print(name)

8
Gestion
Python avancédes fichiers
Gestion des fichiers en Python

Syntaxe

Supprimer les fichiers


Les méthodes de suppression en Python
Ce sont les méthodes de suppression pour les fichiers et les répertoires.
os.remove() – Supprime un fichier.
os.rmdir() – supprime un répertoire vide.
shutil.rmtree() – supprime un répertoire et son contenu.
import os
#nous devrions vérifier si le fichier existe ou non avant de le
supprimer.
if os.path.exists('file.txt'):
os.remove('file.txt')
else:
print("Impossible de supprimer le fichier car il n'existe pas")

9
Module
Python d'E/S Python
avancé
Module d'E/S Python

Le module IO

Ce module fait partie de la bibliothèque standard, il n'est donc pas nécessaire de


l'installer séparément à l'aide de pip .
Dans le iomodule il y a 2 classes communes qui nous sont très utiles :
BytesIO -> Opérations d'E/S sur les données d'octet
StringIO -> Opérations d'E/S sur les données de chaîne
Classe Python BytesIO
Ici, nous pouvons conserver nos données sous forme d'octets ( b''). Lorsque nous
utilisons io.BytesIO, les données sont conservées dans un tampon en mémoire.
Pour imprimer réellement les données à l'intérieur du tampon, nous devons utiliser
bytes_stream.getvalue().
import io
bytes_stream = io.BytesIO(b'Bonjour, c\'est une formation en Python')
print(bytes_stream.getvalue())
bytes_stream.close()

10
Module
Python d'E/S Python
avancé
Module d'E/S Python

Classe Python StringIO

Semblable à io.BytesIO, la classe io.StringIO peut lire les données liées aux chaînes à
partir d'un tampon StringIO. Nous pouvons lire à partir du tampon de chaîne en
utilisant string_stream.read()et écrire en utilisant string_stream.write(). C'est très
similaire à la lecture/écriture à partir d'un fichier !
import io
string_stream = io.StringIO("Hello from IWA \nHow are you?")
# Print old content of buffer
print(f'Initially, buffer: {string_stream.getvalue()}')
# Write to the StringIO buffer
string_stream.write(
'This will overwrite the old content of the buffer if the length
of this string exceeds the old content')
print(f'Finally, buffer: {string_stream.getvalue()}')
# Close the buffer
string_stream.close()

11
Module
Python d'E/S Python
avancé
Module d'E/S Python

ecture à partir d'un tampon StringIO

Semblable à l'écriture, nous pouvons également lire à partir d'un tampon StringIO en
utilisant buffer.read().
import io
input = io.StringIO('This goes into the read buffer.')
print(input.read())

12
Gestion
Python avancédes exceptions
Gestion des exceptions – Les mots clés try/except/else en Python

Gérer les exceptions en python


Une exception est un événement qui se produit pendant l'exécution d'un programme qui
interrompt le déroulement normal des instructions du programme.
En général, quand un script Python rencontre une situation qui ne peut pas faire face, elle
soulève une exception.
En Python, les exceptions peuvent être gérées à l’aide de l’instruction « try ».
Une opération critique pouvant générer une exception est placée dans le bloc « try » et le code
qui gère cette exception est écrit dans le bloc « except ».
Exemple:
Dans cet exemple on va essayer d’ouvrir un fichier sur lequel on n’a pas l’autorisation d’écrire,
donc il déclenche une exception.

try:
file = open("file.txt", "a")
file.write("Hello World!")
except IOError:
print("Erreur: impossible d'ouvrir le fichier")
else:
print("Contenu lu depuis le fichier avec succès")
file.close()

13
Gestion
Python avancédes exceptions
Gestion des exceptions – Les mots clés try/except/else en Python
La clause try/finally

Vous pouvez ajouter le bloc finally: avec le bloc try:. Le bloc finally est un endroit où
placer le code qui doit être exécuté, que ce soit le bloc try crée une exception ou non. En
revanche, vous ne pouvez pas utiliser la clause else avec la clause finale.
Exemple:
try:
file = open("file.txt", "w")
file.write("Hello World!")
finally:
print("Erreur: impossible de trouver le fichier")
Si vous n’êtes pas autorisé à ouvrir le fichier en mode écriture, cela produira le résultat
suivant Erreur: impossible de trouver le fichier

14
Gestion
Python avancédes exceptions
Gestion des exceptions – Les mots clés try/except/else en Python
Exemples
try:
print (5/0)
except ZeroDivisionError:
print (" Erreur: Impossible de diviser par 0")

try:
print (5%0)
except ZeroDivisionError:
print ("Erreur: Impossible de diviser par 0")

try:
print (maVariable)
except NameError:
print ("Erreur: La variable n'est pas déclaré " )
#name 'maVariable' is not defined

liste= [0,1,2]
try:
print (liste[3])
except IndexError :
print ("Erreur : Out of index")
#list index out of range

15
Gestion
Python avancédes exceptions
Gestion des exceptions – Les mots clés try/except/else en Python
Lever une exception

Vous pouvez générer des exceptions de plusieurs manières à l’aide de l’instruction raise.

Exemple:

if age > 0:
#Faire quelque chose.
else:
raise AssertionError("Valeur inattendue!", age)

16
Gestion des exceptions
Gestion des exceptions
Quelques exceptions

Nom d’exception Description

Exception Classe de base pour toutes les exceptions


StopIteration Déclenchée quand la méthode () à côté d'un itérateur ne pointe pas vers un objet
quelconque.
indexError Déclenchée quand un index ne se trouve pas dans une séquence.
ZeroDivisonError Déclenchée quand division ou modulo par zéro a lieu pour tous les types
numériques.
FloatingPointError Déclenchée quand un calcul en virgule flottante échoue.

ImportError Déclenchée quand une déclaration d'importation échoue.


EOFError Déclenchée quand il n'y a pas d'entrée soit de la raw_input () ou (fonction d'entrée)
et la fin du fichier est atteinte.
NameError Déclenchée quand un identifiant ne se trouve pas dans l'espace local ou global.

A.BEN-HDECH 17
Gestion
Python avancédes exceptions
Gestion des exceptions – Les mots clés try/except/else en Python
Exceptions définies par l’utilisateur

class MultiplicationError(Exception):
# Constructeur
def __init__(self, val):
self.val = val
# __str__ pour afficher la valeur
def getVal(self):
return ((self.val))
try:
raise (MultiplicationError(1 * 0))
# La valeur de l'exception est enregistrée dans error
except MultiplicationError as error:
print("Une nouvelle exception s’est produite: ", error.getVal())

18
Les avancé
Python fonctions anonymes(lambda)
Les fonctions anonymes(lambda) en Python
Définition

En Python, une fonction anonyme est une fonction définie sans nom.
Alors que les fonctions normales sont définies à l’aide du mot clé def en Python, les
fonctions anonymes sont définies à l’aide du mot clé lambda.
Par conséquent, les fonctions anonymes sont également appelées des fonctions
lambda.

Syntaxe d’une fonction anonyme


arguments lambda: expression
Exemple:
Une fonction lambda qui multiplie par deux le nombre passé en argument et affiche le
résultat:
f = lambda n : n * 2
print(f(4))

19
Les avancé
Python fonctions anonymes(lambda)
Les fonctions anonymes(lambda) en Python
Définition
En Python, une fonction anonyme est une fonction définie sans nom.
Alors que les fonctions normales sont définies à l’aide du mot clé def en Python, les
fonctions anonymes sont définies à l’aide du mot clé lambda.

Syntaxe d’une fonction anonyme


arguments lambda: expression
Exemple:
Une fonction lambda qui multiplie par deux le nombre passé en argument et affiche le
résultat: f = lambda n : n * 2
print(f(4))
Les fonctions lambda peuvent avoir n’importe quel nombre d’arguments.
f = lambda a, b : a * b
print(f(2, 8))

20
Les avancé
Python fonctions anonymes(lambda)
Les fonctions anonymes(lambda) en Python
Pourquoi utiliser les fonctions Lambda?

La puissance des fonctions lambda est bien illustrée lorsque vous les utilisez comme
fonction anonyme dans une autre fonction.

def puissance(n):
return lambda a : a ** n
mul2 = puissance(2)
print(mul2(4))

21

Vous aimerez peut-être aussi