0% ont trouvé ce document utile (0 vote)
42 vues46 pages

Fichiers and Modules

Transféré par

Shei ma
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)
42 vues46 pages

Fichiers and Modules

Transféré par

Shei ma
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

Filière: Informatique décisionnelle & data science (ISDS)

Python pour la Science


des données
Prof: Hanane GRISSETTE
Fichiers et Modules
1- A quoi sert modules et fichiers...?
2- pourquoi les utiliser….?
3- comment les créer….?
Fichiers et Manipulation
de données
1- A quoi sert modules et fichiers...?
2- pourquoi les utiliser….?
3- comment les créer….?
Les Fichiers en Python
Problème

Lorsqu’un programme termine son exécution, toutes les informations stockées dans des
variables sont perdues.

Solution

Un moyen de les conserver est de les enregistrer sur disque dur c’est: Un fichier
Les types des fichiers en Python:
• Fichier texte : qui est lisible par n’importe quel éditeur de texte,
• Fichier compressé (Fichiers zip ): il est adéquat lorsque les données à conserver sont très nombreuses
• Fichier binaire: lorsqu’on désire que celles-ci ne puissent pas être lues par une autre application que le
programme lui-même. En d’autres termes, le format binaire est illisible excepté pour celui qui l’a conçu.

Attention: n'oubliez pas les guillemets, simples ou doubles, s'il s'agit de chaînes de caractères
1- Fichier Texte
Définition

Les fichiers texte sont des suites de caractères. Le format HTML et XML font partie de cette
catégorie.

Why Fichiers Textes

• Ils servent autant à conserver des informations qu’à en échanger comme par exemple transmettre
une matrice à Excel
• Il est simple dans la façon de conserver les données afin de pouvoir les récupérer. Le cas le plus
fréquent est l’enregistrement des ventes ou des achats: on choisira d’écrire les entrées les uns à la
suite des autres en choisissant un séparateur de colonnes et un séparateur de lignes.

Remarque : Les fichiers texte que les programmes informa6ques manipulent sont souvent structurées.
1- Ecriture dans un fichier Texte
§ Les informations sont toujours écrites sous forme de chaînes de caractères et toujours ajoutées à la
fin du fichier qui s’allonge jusqu’à ce que toutes les informations y soient écrites. L’écriture
s’effectue toujours selon le même schéma.
f = open ("[Link]", "w")
[Link]éation ou ouverture du fichier
2.Écriture [Link] ( s ) # s: chaine de caractères
[Link] [Link] (s2) # s2: chaine de caractères
[Link]()
§ La syntaxe avec le mot-clé with:
è L’instruction [Link]() est implicite et with open ("[Link]", "w ") as f:
automatiquement exécutée dès que le [Link] ( s )
programme sort de la section with. [Link] (s2)

NB: A l’intérieur d’un programme informatique, écrire dans un fichier suit toujours le même schéma
Exemple d’écriture
• Sauvegarder une Matrice
mat = ...
with open ("[Link]", "w") as f:
for i in range (0,len (mat)) :
for j in range (0, len (mat [i])) :
[Link] ( str (mat [i][j]) + "\t") [Link] ("\n")

• Des caractères spéciaux: Certains caractères sont des codes utilisés lors de l’écriture de
fichiers texte afin d’organiser les données.
• Le symbole ; est très utilisé comme séparateur de colonnes pour une matrice, on utilise
également le passage à la ligne ou la tabulation.
• \n : passage à la ligne
• \t : tabulation, indique un passage à la colonne suivante dans le format tsv (Tabulation-separated
values).
Mode d’ouverture
v La foncCon open accepte deux paramètres, le premier est le nom du fichier, le second définit le
mode d’ouverture :
• "w" pour écrire (**w**rite),
• "a" pour écrire et ajouter (**a**ppend),
• "r " pour lire (**r**ead).
v Ecriture en mode « ajout » consiste à ajouter toute nouvelle information à celles déjà
présentes lors de l’ouverture du fichier.

with f = open ("[Link]", "a") as f:


[Link] (" seconde fois ")
[Link] ()

v Ecriture en mode « ajout » Un des moyens pour comprendre ou suivre l’évolu3on d’un programme est d’écrire des informa3ons
dans un fichier ouvert en mode ajout qui est ouvert et fermé sans cesse. Ce sont des fichiers de traces ou de log.
Lecture de fichier Texte
v La lecture d’un fichier permet de retrouver les informations stockées grâce à une étape préalable
d’écriture. Elle se déroule selon le même principe, à savoir :

[Link] du fichier en mode lecture,


[Link],
[Link].

with f = open ("[Link]", "r") as f: with f = open ("[Link]", "r") as f:


for ligne in f : toutes_lignes= [Link] ()
print (ligne) for s in toutes_lignes
print(s)

v Les informations peuvent être structurées de façon plus élaborée dans un fichier texte, c’est le cas des formats HTML et XML.
What Steps in memory ?
Comment python sauvegarder un fichier?:
è L’écriture dans un fichier n’est pas immédiate, le langage python attend d’avoir reçu beaucoup
d’informations avant de les écrire physiquement sur le disque dur.
1. Avec l’appel de la fonction open(): un fichier de taille nulle est souvent créée.
2. Les informations sont placées dans un tampon ou buffer.
3. Lorsque le tampon est plein, il est écrit sur disque dur.

è Ce mécanisme vise à réduire le nombre d’accès au disque dur.


è La fonction flush est utilisée pour éviter ce délai

NB: A l’intérieur d’un programme informa6que, écrire dans un fichier suit toujours le même schéma
Application: Lecture et Nettoyage
Exercice Solution
une feuille de calcul est enregistrée sous format
texte nommé « [Link] », le fichier obtenu
est organisé en colonnes : sur une même ligne,
les informations sont disposées en colonne
délimitées par un séparateur qui est un point
virgule.
1. Lire les données dans le fichiers.
2. Corriger ce code et découvrir comment
l’améliorer rapidement et sûrement la qualité
de ces données pour faire une analyse de
meilleur vente.
2- Format Zip
Problème

lorsqu’on désire que celles-ci ne puissent pas être lues par une autre application que le
programme lui-même. En d’autres termes, le format binaire est illisible excepté pour celui
qui l’a conçu.

Solution

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.

NB: D’autres formats proposent de meilleurs taux de compression sur les fichiers textes existent comme 7-zip.
Lecture et Ecriture de fichier zip
• Lecture de fichier zip import zipfile
with [Link] ("[Link]", "r") as fz:
1. l’importation de zipfile module for info in [Link] () :
[Link] de zipfile print([Link], info.date_time, info.file_size)
[Link] de contenu data = [Link] ("informatique/[Link]")
[Link]
print(data)

• Ecriture de fichier zip


import zipfile
1. l’importation de zipfile module with [Link] ("[Link]", "w") as f:
[Link] de zipfile
[Link] ("[Link]", "nom_fichier_dans_zip.txt",
[Link] de contenu
[Link]
zipfile.ZIP_DEFLATED)

è Le troisième paramètre de méthode write () indique si le fichier doit être compressé ZIP_DEFLATED ou
non ZIP_STORED.

NB: Les fichiers compressés ne sont pas forcément des fichiers textes mais de tout format.
3- Format Binaire
Problème

Ecrire et lire des informations au travers d’un fichier texte revient à convertir les informations quel que soit leur
type dans un format lisible pour tout utilisateur. Un entier est écrit sous forme de caractères décimaux alors
que sa représentation en mémoire est binaire. Cette conversion dans un sens puis dans l’autre est parfois
jugée coûteuse en temps de traitement et souvent plus gourmande en terme de taille de fichiers.

Solution

Pour une grande masse d’informations, il est parfois plus judicieux d’utiliser directement le format
binaire, c’est-à-dire celui dans lequel elles sont stockées en mémoire. Les informations
apparaissent dans leur forme la plus simple pour l’ordinateur : une suite d’octets (bytes en anglais).

NB: Un fichier texte compressé, au format zip par exemple, est une alternative aux fichiers binaires en
terme de taille mais il allonge la lecture et l’écriture par des étapes de compression et de décompression.
Lecture et Ecriture de fichier Binaire
• Lecture d’un fichier Binaire with open("[Link]", "wb") as H:
[Link]([Link]("i", i))
1. Les informa6ons sont récupères dans une
suite d’octets (fonc6on pack du module struct). [Link]([Link]("d", x)) # il faut conver/r les
2. Dans un fichier, il sont écrits caractères en bytes
(méthode write affiliée aux fichiers). octets = [Link]("ascii")
[Link]([Link]("4s", octets))
• Ecriture d’un fichier Binaire
[Link] suite d’octets est lit depuis un fichier # lecture with open("[Link]", "rb") as fb:
(méthode read affiliée aux fichiers). i = [Link]("i", [Link](4))
[Link] suite d’octets est transforme pour
retrouver l’information qu’elle formait x = [Link]("d", [Link](8))
initialement (fonction unpack). s = [Link]("4s", [Link](4))

NB: Les fichiers binaires exigent utilisation des modules spécialisés alors que la gestion des fichiers texte
ne pose aucun problème
Lecture et Ecriture de fichier Binaire
• Lecture d’un fichier Binaire
La lecture utilise la fonction unpack pour effectuer la conversion inverse, celle d’une chaîne de caractères en
entiers, réels, … Le paragraphe suivant illustre la lecture et l’écriture au format binaire.

• Ecriture d’un fichier Binaire


Le module struct et la fonction pack permet de convertir les informations sous forme de chaîne de caractères
avant de les enregistrer au format binaire. La fonction pack construit une chaîne de caractères égale au contenu
de la mémoire. Son affichage avec la fonction print produit quelque chose d’illisible le plus souvent. Le tableau
suivant montre les principaux formats de conversion:
•c : caractère
•B : caractère non signé (octet)
•i : entier (4 octets)
•I : entier non signé (4 octets)
•d : double (8 octets)

NB: A l’intérieur d’un programme informatique, écrire dans un fichier suit toujours le même schéma
Les manipulations de fichiers
Problème

Manipuler un fichier c’est de copier, recopier, déplacer, effacer des fichiers. Mais, il est très
lourdes de traiter plusieurs centaines de fichiers manuellement.

Solution
Ecrire un programme qui s’occupe de traiter des centaines de fichiers automatiquement.
Par exemple:
la création automatique d’un fichier zip incluant tous les fichiers modifiés durant la journée ou la
réorganisation de fichiers musicaux au format mp3 à l’aide de modules complémentaires tel
que mutagen.

Mutagen : Mutagen est un module Python pour gérer les métadonnées audio. Il supporte ASF, FLAC, MP4, Monkey's
Audio, MP3...etc.
Gestion des noms de chemins
abspath(path) Retourne le chemin absolu d’un fichier ou d’un répertoire.
commonprefix(list) Retourne le plus grand préfixe commun à un ensemble de chemins.
dirname(path) Retourne le nom du répertoire.
exists(path) Dit si un chemin est valide ou non.
getatime(path) date de la dernière modification
getmtime(path) date de la dernière modification
getctime(path) date de la création
[Link] getsize(file) Retourne la taille d’un fichier.
isabs(path) Retourne True si le chemin est un chemin absolu.
isfile(path) Retourne True si le chemin fait référence à un fichier.
isdir(path) Retourne True si le chemin fait référence à un répertoire.
join(p1, p2, …) Construit un nom de chemin étant donné une liste de répertoires.
split(path) Découpe un chemin, isole le nom du fichier ou le dernier répertoire des
autres répertoires.
splitext(path) Découpe un chemin en nom + extension.

NB: Windows ne fait pas de différences entre les majuscules et les minuscules à l’intérieur d’un nom de fichier mais
Les systèmes Linux et Mac OSX le font.
Copie, suppression
copy (f1,f2) Copie le fichier f1 vers f2.
chdir (p) Change le répertoire courant, cette fonction peut être importante lorsqu’on utilise la
fonction system du module os pour lancer une instruction en ligne de commande ou
lorsqu’on écrit un fichier sans préciser le nom du répertoire, le fichier sera écrit dans ce
répertoire courant qui est par défaut le répertoire où est situé le programme python. C’est
à partir du répertoire courant que sont définis les chemins relatifs.

getcwd () Retourne le répertoire courant, voir la fonction chdir.


mkdir (p) Crée le répertoire p. \ hline
makedirs (p) Crée le répertoire p et tous les répertoires des niveaux supérieurs s’ils n’existent pas. Dans
le cas du répertoire d:/base/repfinal, crée d’abord d:/base s’il n’existe pas,
puis d:/base/repfinal.
remove (f) Supprime un fichier.
rename (f1,f2) Renomme un fichier
rmdir
NB: A (p) Supprime
l’intérieur d’un un répertoire
programme informatique, écrire dans un fichier suit toujours le même schéma
Liste de fichiers
listdir : La fonction permet de retourner les listes
des éléments inclus dans un répertoire (fichiers
et sous-répertoires).

Glob : Le module propose une fonction plus


intéressante qui permet de retourner la liste des
éléments d’un répertoire en appliquant un filtre.
Liste de fichiers
La fonction walk : permet d’obtenir la liste des
fichiers et des sous-répertoire. Cette fonction parcourt
automatiquement les sous-répertoires inclus, le
programme est plus court mais elle ne prend pas en
compte le filtre qui peut être alors pris en compte grâce
aux expressions régulières.
Modules et importations
1- A quoi sert Modules et importa;ons….?
2- pourquoi les u;liser….?
3- comment les créer….?
Modules
Problème
•comment utiliser une même fonction dans plusieurs programmes différents ?
•comment avoir la définition d’une fonction dans un fichier différent de celui qui contient le programme
principal ?

Solution et définition
On peut imaginer qu'une fonction bien écrite pourrait être judicieusement réutilisée dans un autre
programme Python via ce qu’on appelle Module. Les modules permettent la séparation et donc une
meilleure organisation du code.

Bref: On appelle “module” tout fichier constitué de code Python (c'est-à-dire tout fichier avec l'extension .py )
importé dans un autre fichier ou script.

Attention: Le fichier [Link] doit être dans le même répertoire que le programme principal (ou bien se trouver dans
le « path » de Python).
Comment les utiliser?

• Coder les éléments du module dans un


fichier
• Enregistrer avec extension
• Faire d’Importation: utiliser import

NB: les importations sont souvent regroupées au début du programme, elles sont de cette façon mises en évidence
même s’il est possible de les faire n’importe où.
Importer un module: La syntaxe
Syntaxe S1
import nom_module_sans_extension
X2= nom_module_sans_extension.carre(x)

Syntaxe S2
import nom_module_sans_extension as alias
alias = __import__(" mon_module_exemple ")
X2= [Link](x)

Syntaxe S3
from nom_module_sans_extension import *
from nom_module_sans_extension import carre, cube
X2= carre(x)
Un module est un script ?

• Quand un interpréteur Python lit un fichier Python, il fixe d'abord quelques variables spéciales. Puis, il
exécute le code du fichier. Une de ces variables est appelée __name__.

• quand l'interpréteur exécute un module, la variable __name__prendra comme valeur __main__ si le


module qui est exécuté est le programme principal.
• Si le code importe un module à partir d'un autre, alors la variable __name__ prendra comme valeur le
nom de ce module.

• Le module ‘mon_module’ importe le module ‘mon_module_two’ et sert d'être le programme principale. Il


est courant de vérifier la valeur de cette variable pour savoir si votre module est importé pour être
utilisé comme bibliothèque ou s'il est exécuté directement.
Emplacement d’un module
1. Si le module est placé dans le même répertoire que le programme qui l’utilise, ou bien, le
module est placé dans le répertoire site-packages présent dans le répertoire d’installation
de python, la syntaxe est la suivante:

Syntaxe : import nom_module_sans_extension

1. Sinon, il faut préciser à l’interpréteur python où il doit chercher ce module utilisant la syntaxe
suivante:

import sys
Syntaxe : [Link]("répertoire où se trouve le module à importer")
import nom_module_sans_extension

NB:- La variable [Link] contient les répertoires où python va chercher les modules.
- Deux modules ne peuvent s’importer l’un l’autre.
Module Attributs
Une fois importés, tous les modules possèdent cinq attributs qui contiennent des informations
comme leur nom, le chemin du fichier correspondant, l’aide associée.

__all__ Contient toutes les variables, fonctions, En Python


classes du module
__builtins_ Ce dictionnaire contient toutes les fonctions
_ et classes inhérentes au
langage python utilisées par le module.
__doc__ Contient l’aide associée au module.
__file__ Contient le nom du fichier qui définit le
module.
__name__ Cette variable contient a priori le nom du
module sauf si le module est le point
d’entrée du programme auquel cas cette
variable contient __main__.

NB: Ces attributs sont accessibles si le nom du module est utilisé comme préfixe. Sans préfixe, ce sont ceux du module
lui-même.
Arborescence de modules : Package
Définition
• python propose la notion de paquetage lorsque le nombre
de modules devient conséquent et une répartition de tous
>>> Function_1
ces fichiers dans plusieurs répertoires devrait nécessaire.
• Chaque répertoire contienne un fichier __init__.py qui peut >>> Function_2
être vide.

Syntaxe d’importation
>>> Function_3
import [Link]
import [Link]
import [Link]
from ..extension import Function_2
from .. import Function_1
from ..[Link] import Function_3

NB:Le fichier __init__.py est essentiel pour signifier qu’un répertoire contient des fichiers python.
Modules Internes
• python dispose de nombreux modules préinstallés, comme:

importlib Pour importer des modules.


math Fonctions mathématiques standard telles que cos, exp,log…
os Fonctions systèmes dont certaines fonctions permettant de gérer les fichiers
[Link] Manipulations de noms de fichiers

string Manipulations des chaînes de caractères


sys Fonctions systèmes, fonctions liées au langage python
threading Utilisation de threads
Time Accès à l’heure, l’heure système, l’heure d’une fichier
random permet de tirer des nombres au hasard qui suivent différentes distributions
mathématiques.

NB: i nous utilisons un grand nombre de fois la fonction random(), nous nous attendons à ce que la moitié des
valeurs produites soient plus grandes que 0,5 (et l’autre moitié plus petites).
Modules externes
Les modules externes ne sont pas fournis avec python, ils nécessitent une installation supplémentaire. Il
permet de relier entre eux des projets conçus dans des environnements différents, dans des langages
différents. Par exemple:

pandas Pour importer des modules.


Numpy Fonctions mathématiques standard telles que cos, exp,log…
Keras Fonctions systèmes dont certaines fonctions permettant de gérer les fichiers
NLTK >>>>>>>>>>>>>>> de noms de fichiers
Tenserflow >>>>>>

Le code source des fichiers inclut un fichier [Link]. Le langage python fournit une procédure
d’installation standard :
Syntaxe : python [Link] install

NB: Le nombre de modifications est un critère assez simple pour s’assurer qu’un module est maintenu : commit.
La plupart des modules sont sur Github aujourd’hui.
Exercice Solution
1- Créer votre propre module ‘monModule’.
qui contient les fonctions suivantes et leur
variables.
• Une fonction qui sert a copie le contenu
d’un fichier source vers un fichier
destinataire.
• Une fonction pour afficher le contenu de
fichier destinataire.
• Une fonction qui vérifier l’existence
d’une chaine de caractère donnée en
argument et renvoie son index.
2- importer le module ‘monModule’.
Les exceptions et la gestion des erreurs
1- A quoi sert les exceptions….?
2- pourquoi les utiliser….?
3- comment les créer….?
La Gestion d’erreurs
Problème

En règle générale, si une instruction ne convient pas les règles d’écriture et syntaxe de python, l'exécution du
programme est alors interrompue, et un message d’erreur plus ou moins explicite est affiché.
>>> print 55/0
ZeroDivisionError: integer division or modulo

Solution et Syntaxe
Associer un mécanisme de surveillance à tout un ensemble d’instructions. Un mécanisme de ce type s’appelle en
général mécanisme de traitement des exceptions. Python utilise l’ensemble d’instructions try - except – else, qui
permettent d’intercepter une erreur et d’exécuter une portion de script spécifique de cette erreur.
try:
….
except: …..

NB : Le message d’erreur proprement dit comporte deux parties séparées par un double point : d’abord le type d’erreur, et
ensuite une information spécifique de cette erreur.
Correction de problème
La Correction 1:
si la fonction int ne peut pas créer
un entier à partir du paramètre, elle
produit une exception de
type ValueError ou
ZeroDivisionError.
La Correction 2 :
1- La clause else après les
blocs try except. Le bloc else est
exécuté uniquement si le bloc try se
termine normalement, c’est-à-dire
sans qu’une excepKon ne survienne.
Correction de problème
La Correction 1:
si la fonction int ne peut pas créer
un entier à partir du paramètre, elle
produit une exception de
type ValueError ou
ZeroDivisionError.
La Correction 2 :
1- La clause else après les
blocs try except. Le bloc else est
exécuté uniquement si le bloc try se
termine normalement, c’est-à-dire
sans qu’une exception ne survienne.

2- Un bloc finally est systématique


appelé si bloc try se termine
correctement ou bien qu’une exception
soit survenue.
Exemple

Application:
- Ecrire un script qui demande à l’utilisateur d’entrer un nom de fichier, lequel fichier étant destiné à être ouvert en
lecture. Si le fichier n’existe pas, nous ne voulons pas que le programme se « plante ». Nous voulons qu’un
avertissement soit affiché, et éventuellement que l’utilisateur puisse essayer d’entrer un autre nom.

Correction:
Traiter une Exception : Définition
Définition
Une exception est un objet qui contient des informations sur le contexte de
l’erreur.

Comment Python traiter les exceptions ?

Si ce traitement est interrompu par une


try indique le traitement que l’on désire exception, alors l’interpréteur recherche un
réaliser. bloc except correspondant au type (ou à un type
parent) de l’exception.

NB: la structure du try except est qu’elle permet de dissocier dans le code la parKe du traitement normal de
la parKe du traitement des erreurs.
Type d’erreur
Plusieurs excepKons décrivent des erreurs très courantes. Il est intéressant de bien les connaître pour
écrire des programmes capables de traiter les erreurs éventuelles :

• ValueError: Signale que la valeur n’est pas correcte.


• TypeError Signale que le type de la donnée n’est pas correct pour l’instruction à exécute
• IndexError Signale que l’on veut accéder à un élément d’une liste, d’un n-uplet ou d’une
chaîne de caractères avec un index invalide.
• KeyError Signale que la clé n’existe pas dans un dictionnaire.

Si le même traitement est applicable pour des excepKons de types différents, il est possible de fournir
un seul bloc except avec le tuple des excepKons
try:
……
except (ValueError, ZeroDivisionError):
print("Désolé, quelque chose ne s'est pas bien passé.")
Gérer une exception avec Raise
• signaler une exception grâce au mot-clé raise.

Syntaxe: if x < 0: raise ValueError

• Pour la plupart des exceptions, il est possible de passer en paramètre un message pour décrire le cas
exceptionnel :

Syntaxe: if x < 0: raise ValueError("La valeur ne doit pas être négative")

• Le mot-clé raise est également uKlisé pour relancer une excepKon dans un bloc mot-clé except

Syntaxe: Try
……
except (ValueError, ZeroDivisionError) as e:
print("Désolé, quelque chose ne s'est pas bien passé.")
raise Excep6on from e
Appication Solution
Écrivez un script qui permette de créer et de relire
aisément un fichier texte.
• Votre programme demandera d’abord à l’utilisateur
d’entrer le nom du fichier.
• Ensuite il lui proposera le choix, soit d’enregistrer
de nouvelles lignes de texte, soit d’afficher le
contenu du fichier.
• L’utilisateur devra pouvoir entrer ses lignes de texte
successives en utilisant simplement la touche
<Enter> pour les séparer les unes des autres. Pour
terminer les entrées, il lui suffira d’entrer une ligne
vide (c’est-à-dire utiliser la touche <Enter> seule).
L’affichage du contenu devra montrer les lignes du
fichier séparées les unes des autres de la manière la
plus naturelle (les codes de fin de ligne ne doivent pas
apparaître).
Les Expressions régulières

1- A quoi sert Regex Modules….?


2- pourquoi les utiliser….?
3- comment les créer….?
Les Expressions régulières : Regex

Définition et syntaxe :
Une expression régulière est une suite de caractères qui a pour but de décrire un fragment de texte.
Cette suite de caractères est encore appelée motif (en anglais pattern), motif qui est constitué de
deux types de caractères:
•Les caractères dits normaux.
•Les métacaractères ayant une signification particulière, par exemple le caractère ^ signifie
début de ligne et non pas le caractère « chapeau » littéral.

Exemple :
la *regex* `^ATG` est retrouvée dans la chaîne de caractères `ATGCGT` mais pas
dans la chaîne `CCATGTT`.
Regex
Cette manière de recherche de données « fouiller » dans un fichier est appelée plus généralement parsing
(qui signifie littéralement « analyse syntaxique »). Le module re permet d'utiliser des expressions
régulières avec Python.

La syntaxe des métacaractères :


• ^. : Début de chaîne de caractères ou de ligne.
• $ : Fin de chaîne de caractères ou de ligne.
• . : N'importe quel caractère (mais un caractère quand même).
• [xy] Une liste de segment possibble. Exemple [abc] équivaut à : a, b ou c
• (x|y) Indique un choix multiple type (ps|ump) équivaut à "ps" OU "UMP"
• \d le segment est composé uniquement de chiffre, ce qui équivaut à [0-9].
• \D le segment n'est pas composé de chiffre, ce qui équivaut à [^0-9].
• \s Un espace, ce qui équivaut à [ \t\n\r\f\v].
• \S Pas d'espace, ce qui équivaut à [^ \t\n\r\f\v].
• \w Présence alphanumérique, ce qui équivaut à [a-zA-Z0-9_].
• \W Pas de présence alphanumérique [^a-zA-Z0-9_].
• \ Est un caractère d'échappement
Regex
- Pour imposer le nombre d'occurences avec la syntaxe suivante:
• A{2} : on attend à ce que la lettre A (en majuscule) se répète 2 fois consécutives.
• BA{1,9} : on attend à ce que le segment BA se répète de 1 à 9 fois consécutives.
• BRA{,10} : on attend à ce que le segment BRA ne soit pas présent du tout ou présent jusqu'à 10 fois
consécutives.
• VO{1,} : on attend à ce que le segment VO soit présent au mois une fois.

- Et signification comme symbole:

Symbole Nb Caractères attendus Exemple Cas possibles


GRS, GR O S, GR I S,
? 0 ou 1 GR (.)? S
GR A S
+ 1 ou plus GR (.)+ S GR O S, GR I S, GR A S
GRS,GRO O ,GR III S,GR Ol
* 0, 1 ou plus GR (.)* S
ivier S
Regex: Exemples
1- Chercher une expression :
Le match est très intéressant pour valider l'intégrité
d'une variable, mais il est également possible de
chercher des expressions spécifiques dans une chaine de
caractères.

2- Remplacer une expression


Pour remplacer une expression on utilise la
méthode sub() .Le remplacement d'expression se fait sur
tous les matchs possibles:

3 - Compiler une expression


Si vous êtes amenés à utiliser plusieurs fois la même
expression (par exemple dans une boucle), vous pouvez
la compiler pour gagner en performence

Vous aimerez peut-être aussi