Académique Documents
Professionnel Documents
Culture Documents
La Programmation Autrement
Chapitre 1
Prise en Main et Bases en Python
Variable id
Map Mind : Carte Heuristique
.methode
OBJET
Base de Donnée
Def fonction
0
Question : Oû s se trouve les 30% de l’information pour les 80% du travail
Python
Penser pour faciliter la Programmation
Un langage puissant, à la fois facile à apprendre et riche en possibilités. Une
syntaxe est simple, concise et efficace. “ On code ce qu’on pense ”
Domaines d’application
Apprentissage de la POO Scriptss d'administration système
Réalisation Application GUI Calcul scientifique - l'imagerie Vidéo Analytique
Datascience Systèmes embarqués IoT Accès aux BD Développement WEB
1
Python
Ecriture et lisibilité
Les programmes sont écrits pour être lus par des humains, il est nécessaire alors de
rendre les programmes faciles à lire et évidents.
Indentation obligatoire
Recommande d'utiliser 4 <espace> par niveau d'indentation et pas la
tabulation <tab>.
Zen de Python
Préfère :
Syntaxe simple à écrire et à lire. la beauté à la laideur,
l’explicite à l’implicite,
le simple au complexe,
Pas de séparateur et le complexe au compliqué,
Pas de points-virgules ni d’accolades. le déroulé à l’imbriqué,
l’aéré au compact
Prend en compte la lisibilité
2
Python
Variables
En python tout est objet.
Le moyen pour Python de manipuler ces objets est par l’intermédiaire de variables
car les variables référencent les objets.
Valeur
Variable comme une boite
- Forme = Type
- Etiquette = Nom
- Contenu = Valeur Nom
Un nom de variable en python débute par une lettre majuscule A–Z ou minuscule a-
z, un underscore _, suivie de lettres ou chiffres.
Pour créer (ou déclarer) une variable, il suffit de lui affecter une valeur.
Mots-clés réservés ne peuvent donc pas être utilisés pour définir vos
propres identifiants (variables, noms de fonction, classes...)
Sur la ligne tout ce qui vient après le # n’est pas pris en compte
Commentaires multi-lignes
Définis à la façon des chaînes de caractères multi-lignes : précédé et suivi de 3 4
apostrophes ''' ou 3 guillemets """
Python
Typage des données
le typage est lié à l’objet par conséquent l’objet va garder le même type durant
toute l’exécution du programme; on parle de typage fort.
5
Python
Typage des données
>>> round(3.7)
4
Si un opérateur arithmétique est utilisé avec des opérandes de types différents, Python va
automatiquement convertir l’opérande dont le type est plus “étroit” vers le type le plus
“large”.
7
Python
Opérateurs de base
Numérateur-------n d --------Dénominateur
Reste n%d-------- r q -------Quotient n//d
Modulo : %
>>> 7%5
(reste de la division entière)
>>> print(Phrase) 11
Python
Chaines de caractères
Concaténation
La concaténation consiste à regrouper
>>> ‘Hello’ + ‘ ’ + ‘world’ + ‘ !’
plusieurs chaînes en une seule.
Quelques fonctions :
len(chaine) retourne le nombre de caractères de chaîne
str(nombre) convertit un nombre en chaîne
La méthode format
La méthode .format définis dans la chaîne entre accolades { } , les
indicateurs de format permettent d’afficher les variables(même non définie).
>>> nom = "Abou" ; age = 35
>>> "Je m’appelle {1} et j’ai {0} ans".format(age ,nom)
Je m’appelle Abou et j’ai 35 ans
Lire au clavier
La fonction input() affiche une invite et récupère les caractères saisis par
l’utilisateur.
Cette fonction renvoie la chaîne de caractères contenant la saisie de
l’utilisateur.
>>>input()
>>> x = input()
>>> nom = input("Entrez votre nom: ")
>>> age = int(input("Entrez votre age: "))
16
Python
Anticipons un peu !!!
Instruction de Contrôle
Tester une condition en fonction du résultat du test faire une action.
Conditionnelle Simple Si condition 1 alors
Conditionnelle Double Instruction 1
Sinon Si condition 2 alors
Conditionnelle Multiple Instruction 3
...
Sinon
Instruction 2
Les Fonctions
def nom_fonction( paramétre 1 , ...) :
Définition Instruction1
Appel ...
return
nom_fonction( paramétre 1 , ...) 17
Python
Instructions d’entrées/sorties
Merci
18
Python
TD
Exercice 1
Sur IDLE
Demander à l’utilisateur d’entrée la valeur de deux variables nommé x et y
ensuite échanger puis afficher leur valeur.
19
Python
TD
Exercice 2
Ce projet de la calculatrice reviendra dans la suite du cours sous
différentes formes, à chaque fois avec une petite difficulté supplémentaire.
19
Python
Note
Erreur
Syntaxique
Manière d’écrire
Exécution
19
Python
La Programmation Autrement
Chapitre 2
Type Structurées et Instruction de Contrôle
ü Les listes
ü Les tuples
ü Les dictionnaires
ü Les ensembles
0
Python
Listes
Une liste permet de stocker (les référence des objets) une séquence
dynamiquement modifiable d'éléments hétérogènes.
Les listes sont des types mutables.
Les éléments sont indicés par des entiers commençant à partir de 0.
Li
Slicing
Forme avancée de l'indexation pour d'accéder aux éléments par intervalles et
tranches.
>>> Liste[1:3:1]
Sa syntaxe générale est :
>>> Liste[:3:2]
nomListe[debut:fin:pas].
>>> Liste[1::1] 0
Python
Listes
Listes multidimensionnelles
0
Python
Listes
Exerçons nous un peu
Code
Remplir
0
Python
Tuples
Le tuple Python est l'implémentation en lecture seule de la liste, c'est-à-
dire une collection immuable (non modifiable) d'éléments hétérogènes.
Les tuples possèdent les mêmes méthodes que la liste, à l'exception de
celles permettant une modification.
>>> unTuple = 1, 3.14 , "Seck"
Les tuples s’utilisent de la même manière que les listes, mais leur parcours
est plus rapide.
Ils consomment moins de mémoire.
Les tuples sont utiles pour définir des constantes.
On peut transformer une liste en Tuple et vice versa avec respectivement les
fonctions list() et tuple().
0
Python
Dictionnaires
Un dictionnaire est une structure de données dite associative, car elle
permet de stocker une valeur en lui associant une clé.
List2 = list(List1)
Dict2 = dict(Dict1)
0
Python
Dictionnaires
Méthodes .keys(), .values() .items()
Méthode .keys() retourne un objet contenant l’ensemble des clefs des éléments
d'un dictionnaire. Méthode très utilisée dans les boucles for.
>>> monDict = dict(nom="Coumba", age=30, famille=["Diop","Wade"])
>>> clefs = monDict.keys() #dict_keys(['nom', 'age’, 'famille'])
valeurs = monDict.values()
#dict_values(['Coumba', 30, [' Diop’, ‘ Wade ']])
paires = monDict.items()
#dict_items([('nom','Coumba'), ('age',30), ('famille',['Diop’,’Wade'])]) 0
Python
Dictionnaires
Exerçons nous un peu
0
Python
Structure de contrôle
Les structures de contrôle décrivent l’enchaînement des instructions. Elles
permettent des traitements séquentiels, conditionnels ou répétitifs
(itératifs).
Dans les langages impératifs tels que le Python, les instructions d’un même
bloc sont exécutées séquentiellement, c’est-à-dire, les unes après les
autres, donc dans l’ordre où elles sont écrites.
Nous avons déjà travailler avec des programmes écrits dans des fichiers
source.
0
Python
Structure de contrôle
Exécution conditionnelle if - elif – else
L'exemple ci-dessous illustre la forme complète de cette structure. Les parties
elif et else sont facultatives.
Si condition 1 alors if condition 1 :
Instruction 1 Instruction 1
Sinon Si condition 2 alors elif condition 2 :
Instruction 3 Instruction 3
... ...
Sinon else:
Instruction 2 Instruction 2
Pour des tests multiples, on peut bien entendu cascader plusieurs parties elif.
Notez bien la présence du caractère : (double point) précédant le début de
chaque bloc.
L’indentation permet de définir les blocs d’instructions pour un code lisible.
🚨 Pas forcer de finir avec un else .
else est rattaché au dernier if de même niveau d’indentation 0
Python
Structure de contrôle
Opérateur Ternaire
Permet l’écriture de la structure conditionnelle en une ligne.
if age > 18 :
Majeur = True
Majeur = True if age > 18 else False
else:
Majeur = False
0
Python
Structure de contrôle
Exerçons nous un peu
Code
0
Python
Structure de contrôle
Instruction match
• Pour écrire des instructions de commutation
avec la fonction de correspondance des motifs
structurels, vous pouvez utiliser la syntaxe ci-contre :
0
Python
Boucle
La fonction range(début, fin, pas) crée une séquence de nombres entiers notamment
utilisable par boucle for:
début ≤ nombre ≤ fin-1 si le pas est positif,
début ≥ nombre ≥ fin+1 si le pas est négatif.
Par défaut, les paramètres début et pas prennent respectivement les valeurs 0 et 1.
>>> range(10) # retourne [0,1,2,3,4,5,6,7,8,9]
>>> range(2,10) # retourne [2,3,4,5,6,7,8,9]
>>> range(1,10,2) # retourne [1,3,5,7,9]
La fonction enumerate(sequence) retourne l'indice et la valeur des éléments d'une
séquence (liste, tuple…). Cette fonction est également très utilisée dans les
boucles for.
Seq1.star sans parenthèse !
Seq1.step seq = [1, 3, 12, 10, 2]
Seq1.stop enum = enumerate(seq) # (0, 1), (1, 3), (2, 12), (3, 10), (4, 2)
🚨 Pas forcer de finir avec un else aussi else est rattaché au dernier if de même
niveau d’indentation 0
Python
Boucle
Boucle for Boucle while
La boucle for permet d’exécuter une La boucle while permet d'exécuter un
séquence d’instructions un nombre connu bloc d'instruction aussi longtemps que
de fois. Il est ainsi possible de la condition (expression logique) qui
parcourir élément par élément une lui est appliquée est vraie.
structure de données itératives. Pour
itérer sur une suite de nombres entiers, i = 0 # initialiser pour entrer dans la boucle
on utilise souvent la fonction range(). while i < 5 :
for i in range(5): print(i)
print(i) i += 1# incrémenter: évite une boucle infinie
Continue permet d’aller à l’itération 🚨 Si la condition est toujours vraie
suivante cela engendre une boucle infinie.
for i in “Python3.10 is the best.” :
while True :
if i.isdigit() :
n = int(input(“ Entrer un chiffre”))
continue
if n in range(10) :
print(i, end = ’’)
break
Break arrête la boucle ! 0
Python
Boucle
Les boucles peuvent être terminer La boucle while aussi.
avec une clause else i = 0
Avec la boucle for while i <= 10 :
for i in [1,91,5,11,24,7,85]: if sqrt(i).isdigit() :
if i%2 == 0 : print(“On a carré!”)
print(“ On a un nombre paire.”) break
break i += 1
else: else:
print(“Pas de nombre paire !”) print(“Pas carré dans la liste !”)
Liste en compréhension -------------- Code équivalant
L = [1,91,5,11,24,7,85] L = [1,91,5,11,24,7,85]
[i for i in L if i%3 != 0 ] Liste = []
Avec if … else for i in L :
if i%3 != 0 :
L = [1,91,5,11,24,7,85] liste.append(i)
[i if i%3 != 0 else 0 for i in L ] print(liste) 0
Python
Boucle
Any et All
any retourne True si la liste contient all retourne True si tout booléen de la
au moins un booléen True liste est à True
any([False , True , False , False]) all([False , True , False , False])
0
Python
TD
Exerçons nous
Pour vous aider un peu
19
Python
TD
Exerçons nous
Pour vous aider un peu
Demander à un utilisateur d’entrer une adresse et un masque :
Analyser l’adresse puis donner :
- si l’adresse est valide
- La classe de l’adresse
- Le type d’adresse (IPv4 – IPv6)
- La partie hôte
- La partie réseau
- La première adresse de ce sous réseau
- La dernier adresse de ce sous réseau
- L’adresse de diffusion
19
Python
TD
Projet 1
Reprendre le TP sur le VLSM avec une implémentation !
19
Python
TD
Un élève de seconde S veux résoudre une équation du second degré dans IR:
1. Ecrire un code qui récupère les coefficients de l’équation.
2. Afficher l’équation ainsi obtenue.
3. Calculer le discriminant puis afficher le.
4. Utiliser une expression pour voir si Delta est positif ou non.
5. Afficher les solutions.
19
Python
TD
Exercice 2 : Interaction utilisateur, nombres entiers et chaînes de caractères
Exercice 8 :
Soit la phrase : P = « Bienvenu au cours ‘ the True python’. »
Afficher les méthodes qui s’appliquent aux chaines de caractères.
1. Effacer les espaces avant et après la phrase.
2. Donner le nombre de caractère de P puis l’écrire en majuscule, puis sous format
titre.
3. Dans P remplacer les espaces par des virgules puis les stocker dans P1 .
4. Créer une liste L des mots de P1.
5. Quelle est la positon du deuxième T dans P ? Expliquer le résultat.
6. Dans la liste L ajouter le booléen True. Vérifier si 1 est dans la liste L ?
7. Remplacer les ‘e’ par ‘i’. 19
Python
TD
Exercice 8 :
Soit la phrase : P = « Bienvenu au cours the true python. »
Afficher les méthodes qui s’appliquent aux chaines de caractères.
1. Effacer les espaces avant et après la phrase.
2. Donner le nombre de caractère de P puis l’écrire en majuscule, puis sous
format titre.
3. Dans P remplacer les espaces par des virgules puis les stocker dans P1 .
4. Créer une liste L des mots de P1.
5. Quelle est la positon du deuxième T dans P ? Expliquer le résultat.
6. Dans la liste L ajouter le booléen True. Vérifier si 1 est dans la liste L
?
7. Remplacer les ‘e’ par ‘i’.
19
Python
TD
Exercice 9 : authentification via dictionnaire
On donne un extrait des logins d’accès au réseau du lycée :
Amélioration du programme
− Pour chaque tentative erronée, indiquer à l’utilisateur le nombre de tentatives
restantes.
On supposera que le nombre de tentatives maximal est de 3.
− Si le nombre de tentatives s’épuise, ne plus proposer une nouvelle saisie.
19
Python
Projet
Mini Projet 2
Dans ce projet, tu vas devoir créer un programme en ligne de commande qui permet
de manipuler une liste de courses.
Demander à l'utilisateur de choisir parmi une de ces action en entrant un nombre
de 1 à 5. Le programme doit permettre de réaliser 5 actions :
1. Ajouter un élément à la liste de courses
2. Retirer un élément de la liste de courses
3. Afficher les éléments de la liste de courses
4. Vider la liste de courses
5. Quitter le programme
Gérer le cas de figure où l'utilisateur ne rentre pas un nombre compris entre 1 et
5 ou s'il rentre par exemple des lettres ou un autre symbole invalide.
Dans ce cas, afficher de nouveau le menu avec les options disponibles, jusqu'à ce
que l'utilisateur choisisse une option valide.
Dans ce projet sauvegarder la liste dans un fichier ou une base de donnée.
Le but ici est juste d'interagir avec l'utilisateur et de manipuler une liste en
fonction de son choix.
19
Python
Projet
Mini Projet 3
Le but de ce projet est de créer un jeu de rôle textuel dans le terminal.
Le jeu comporte deux joueurs : vous et un ennemi.
Vous commencez tous les deux avec 50 points de vie.
Votre personnage dispose de 3 potions qui vous permettent de récupérer des
points de vie.
L'ennemi ne dispose d'aucune potion.
Chaque potion vous permet de récupérer un nombre aléatoire de points de vie,
compris entre 15 et 50.
Votre attaque inflige à l'ennemi des dégâts aléatoires compris entre 5 et 10
points de vie.
L'attaque de l'ennemi vous inflige des dégâts aléatoires compris entre 5 et
15 points de vie.
Lorsque vous utilisez une potion, vous passez le prochain tour.
19
Python
Projet
Mini Projet 3
Déroulé de la partie 1/1
Lorsque vous lancez le script, vous devez demander à l'utilisateur s'il souhaite
attaquer ou utiliser une potion :
"Souhaitez-vous attaquer (1) ou utiliser une potion (2) ? "
Cette phrase sera demandée à l'utilisateur au début de chaque tour.
? Si l'utilisateur choisi la première option (1), vous infligez des points de dégât à
l'ennemi.
Ces points seront compris entre 5 et 10 et déterminés aléatoirement par le programme.
? Si l'utilisateur choisi la deuxième option (2), vous prenez une potion.
Les points de vie que la potion vous donne doivent être compris entre 15 et 50 et
générés aléatoirement par le programme Python.
Vous devez vérifier que l'utilisateur dispose de suffisamment de potion et décrémenter
le nombre de potions qu'il a dans son inventaire lorsqu'il en boit une. Si
l'utilisateur n'a plus de potions, vous devez lui indiquer et lui proposer de nouveau
de faire un choix (attaquer ou prendre une potion).
19
Python
Projet
Mini Projet 3
Déroulé de la partie 1/2
Quand le joueur prend une potion, il passe le prochain tour.
Une fois l'action du joueur exécutée, et si l'ennemi est encore vivant, il vous
attaque. Si l'ennemi est mort, vous pouvez terminer le jeu et indiqué à
l'utilisateur qu'il a gagné ?
L'attaque de l'ennemi inflige des dégâts au joueur compris entre 5 et 15, là
encore déterminés aléatoirement par le script.
Si vous n'avez plus de points de vie, le jeu se termine et vous avez perdu la
partie.
À la fin du tour, vous devez afficher le nombre de points de vie restants du
joueur et de l'ennemi.
Toutes ces opérations se répètent tant que le joueur et l'ennemi sont en vie.
À chaque tour, vous attaquez en premier. Il ne peut donc pas y avoir de match nul.
Si lorsque vous attaquez, votre attaque fait descendre les points de vie de
l'ennemi en dessous (ou égal à) 0, vous gagnez la partie sans que l'ennemi n'ait
le temps de vous attaquer en retour.
19
Python
La Programmation Autrement
Chapitre 3
Fonctions, Modules et Données Persistantes
- Intégré
3 Type de Fonction – Modulaire
- Définie
0
Python
Les fonctions
Portée des variables
La portée est le périmètre dans lequel un nom (de variable, fonction...) est connu
(visible) et utilisable. Sous Python, cela est lié au concept d'espaces de noms :
namespaces. C'est ainsi que :
Les variables locales, définies dans le corps d'une fonction ne sont pas
accessibles en dehors du corps de la fonction.
Ces variables sont supprimées de la mémoires à la fin de
l’exécution de la fonction.
Les variables globales, définies en dehors du corps d'une fonction, sont visibles
dans les fonctions appelées, mais ne sont par défaut modifiables. En outres, si
l’on définit dans le corps de la fonction une variable de même nom, alors la
variable globale est ignorée.
0
Python
Les fonctions
Modules
Il est conseillé d’utiliser les deux dernières méthodes. La première méthode
ne devrait en principe pas être utilisée, car elle présente le risque
d'écrasement d'objets si les différents modules chargés et/ou votre programme
implémentent des objets de noms identiques.
import math from math import sqrt
math.sqrt(9) sqrt(9)
On peut aussi utiliser la méthode d’alias qui permet d’utiliser un nom local
du module, mais en plus court. import sqlite3 as sql
bd = sql.connect('...')
Il est possible d’afficher l’ensemble des méthodes d’un module en utilisant la
fonction dir qui retourne la liste de toutes les méthodes d’un module.
import math
dir(math)
help(module.nomFonction) permet d’afficher le texte d’aide relative à la
méthode ou fonction passée en paramètre. help(math.sqrt) 0
Python
Les fonctions
Gérer le temps avec le module time
Le module time est constitué uniquement de méthodes et d’attributs relatifs au
temps et aux dates. Ce module propose entre autres les méthodes suivantes :
.time() : renvoie le nombre de secondes écoulées depuis le 01/01/1970 à 00:00:00
time.time()
0
Python
Les fonctions
Amélioration de la forme try…except
C’est généralement pas conseillé d’utiliser la forme try…except pour gérer une
exception, cette forme capture tout un tas d’erreurs auxquels on a pas pensé,
ce qui peut masquer certains bugs sur le programme. On ne pourra jamais
découvrir la cause exacte du problème.
entree = input("Entrez votre age: ") entree = input("Entrez votre age: ")
try: age = int(entree)
age = int(entree) if age > 0:
print("Vous etes age de ", age, "ans.") print("Vous etes age de ", age, "ans.")
except:
else :
pass
raise ValueError("l'age saisie est négative ou nulle")
Entrez votre age: 45
Vous etes age de 45 ans.
Entrez votre age: 45
Entrez votre age: douze ans Vous etes age de 45 ans.
Entrez votre age: -15
ValueError: l'age saisie est négative ou nulle 0
Python
Données Persistantes
Persistance de données avec Python
Pour stocker les résultats d’un programme, pour restaurer des données ou pour
sauvegarder des paramètres de fonctionnement d’une application de manière
persistante, il est indispensable de savoir manipuler les systèmes de stockage
de données.
Une donnée persistante est donc conservée lorsque le programme est fermé ou
l’ordinateur éteint.
Python propose plusieurs outils pour faciliter la gestion des données au
niveau des systèmes de fichiers.
0
Python
Données Persistantes
Fichiers vs Base de données
Un système de fichier (FS, Files System) est considéré comme un moyen de
stockage de données non structurées, arbitraires et non relationnelles.
Au contraire, une base de données (DB, Database) est en générale utilisée pour
stocker des données structurées, relationnelles avec un format bien définis.
Ces opérations peuvent se faire sur deux type de fichiers : les fichiers textes (basés
un encodage) et les fichiers binaires (basés sur une suite d’octet de 0x00 à 0xFF).
L’encodage ASCII permet de coder 256 caractères (8 bits) et par conséquent ne contient
pas tous les jeux de caractères. Par contre, le jeux de caractère Unicode permet
d’encoder tous les jeux de caractères connus.
0
Python
Données Persistantes
Ouverture : open()
fichier : est une chaîne définissant le nom du fichier, incluant son chemin d'accès
'w': accès en écriture son contenu est écrasé; si le fichier n'existe pas, il est créé.
'a': accès en mode ajout, càd les écritures s'effectuent à la fin du fichier. Si le
fichier n'existe pas, il est créé.
encoding : pour définir le type d'encodage, l'encodage par défaut est 'utf-8‘
0
Python
Données Persistantes
Fermeture : close()
Lorsqu’un fichier est ouvert par un programme, aucun autre programme ne pourra y
accéder. Il faut donc toujours fermer le fichier à la fin pour indiquer que le fichier
est accessible pour un autre usage. Sous Python, la fermeture du fichier s'effectue
logiquement comme suit :
fd.lose()
En cas d’erreur de manipulation du fichier ou encore un plantage du programme Python,
le fichier continuera à être ouvert, donc inaccessible pour le reste des programmes.
fd = open('mydocs.txt', 'w’)
fd.write("Hello world !")
Ecriture : write() fd.close()
Pour écrire dans un fichier, on utilise la méthode write() en lui passant en paramètre
la chaîne à écrire dans le fichier.
On peut ajouter au mode de lecture la préfixe b pour ouvrir le fichier en mode binaire,
et le préfixe t pour l’ouvrir en mode texte.
0
Python
Données Persistantes
Fermeture : close()
Lorsqu’un fichier est ouvert par un programme, aucun autre programme ne pourra y
accéder. Il faut donc toujours fermer le fichier à la fin pour indiquer que le fichier
est accessible pour un autre usage. Sous Python, la fermeture du fichier s'effectue
logiquement comme suit :
On peut ajouter au mode de lecture la préfixe b pour ouvrir le fichier en mode binaire,
et le préfixe t pour l’ouvrir en mode texte.
0
Python
Données Persistantes
Fichier JSON
L’instruction with dont le rôle est de définir un contexte au sortir duquel
certaines actions sont automatiquement exécutées. Cette méthode garantit la
fermeture du fichier même lorsque des erreurs surviennent lors de la
manipulation du fichier.
with open('mydocs.txt', 'r+') as fd:
# Opérations sur le fichier
Dans la suite, c’est cette technique qui sera retenue pour la manipulation des
fichiers.
0
Python
Données Persistantes
Lecture : read()
.read() : déverse le fichier sur une seule chaîne, y compris les newline (\n)
.readlines() : déverse le fichier sur une liste qui contiendra autant d'éléments que de
lignes du fichier, chaque élément étant terminé par un newline ( \n )
fd = open('mydocs.txt', 'w’)
chaine = fd.read() # chaine = fd.rept(.read()) interprete la chaine brûte
chaine1 = fd.readline() # recupére la chaîne brûte avec les \n
chaine2 = fd.read().splitlines() # recupére la chaîne sous forme de liste
print(chaine)
fd.close()
Si le fichier est très volumineux, on peut alors utiliser la méthode de lecture par
paquets de nb_caract caractères, .read(nb_caract)
0
Python
Données Persistantes
Exploitation du système de fichiers
Python offre des fonctionnalités qui permettent d’interagir avec le système de
fichier, c’est-à-dire de se déplacer dans l’arborescence du FS, créer des
dossiers et fichiers, lister ou copier des fichiers… Pour ce faire, nous
aurons besoin d’importer le module os qui nous permet entre autres de :
• Manipuler les chemins
• Lister les fichiers et les dossiers
• Manipuler les fichiers et dossiers
0
Python
Données Persistantes
Manipuler les chemins
Le module os contient une classe path proposant plusieurs fonctions de
manipulation de chemin. Les méthodes ci-dessous donnent une idée sur ce qui
est possible de faire.
basename(path) : retourne le dernier élément du chemin path.
>>> import os >>> import os
>>> path = r"C:\ISEPYTHON\DossierTest" >>> path = "C:\\ISEPYTHON\\DossierTest"
>>> os.path.basename(path) >>> os.path.basename(path)
"DossierTest" "DossierTest"
dirname(path) : retourne le répertoire parent du chemin path
>>> os.path.dirname(path)
'C:\ISEPYTHON'
exists(path) : test si le chemin path existe ou si on a une permission d’y
accéder
>>> os.path.exists(path)
0
True
Python
Données Persistantes
Manipuler les chemins
getsize(path) :
>>> os.path.getsize(path+"\\20180821_194206.jpg")
retourne la taille du fichier 2177247
(en octets) indiqué via son chemin path
isdir(path) : test si le chemin path est un dossier
>>> os.path.isdir(path)
True
>>> os.path.isdir(path+"\20180821_194206.jpg")
False
isfile(path) : test si le chemin path est un fichier
>>> os.path.isfile(path)
False
>>> os.path.isdir(path+"\20180821_194206.jpg")
True
0
Python
Données Persistantes
Exploitation du système de fichiers
Python offre des fonctionnalités qui permettent d’interagir avec le système de
fichier, c’est-à-dire de se déplacer dans l’arborescence du FS, créer des
dossiers et fichiers, lister ou copier des fichiers… Pour ce faire, nous
aurons besoin d’importer le module os qui nous permet entre autres de :
• Manipuler les chemins
• Lister les fichiers et les dossiers
• Manipuler les fichiers et dossiers
0
Python
Données Persistantes
Lister les fichiers et les dossiers
La méthode os.listdir(path) permet de récupérer sous forme de liste l’ensemble
des éléments (fichiers et dossiers) inclus du répertoire path indiqué en
paramètre. >>> os.listdir(path)
['20180821_194206.jpg', 'Demain, dès l’aube.txt',
'galerie', 'le_corbeau_et_le_renard.txt’]
0
Python
Données Persistantes
Manipuler les fichiers et les dossiers à l’aide du module shutil
ZipFile(fichier, mode) : est un objet permettant d’ouvrir un fichier ZIP. Le paramètre fichier indique un
ZipFile(fichier, mode)et: mode
chemin vers un fichier,
est indique
un objet permettant d’ouvrir un fichier ZIP. Le paramètre
le mode d’ouverture.
fichier indique un chemin vers un fichier, et mode indique le mode d’ouverture.
L’objet ZipFile dispose de plusieurs méthodes pour la manipulation d’un archive.
L’objet ZipFile dispose de plusieurs méthodes pour la manipulation d’un archive.
.write(nomfichier) : écrit le fichier nommé nomfichier dans l'archive. L'archive doit être ouverte avec le
.write(nomfichier)
mode " w " ou " a". : écrit le fichier nommé nomfichier dans l'archive. L'archive doit être
ouverte avec le mode " w " ou " a".
.extract(membre, path=None) : extrait un membre (nom complet) de l'archive dans le répertoire courant; path
.extract(membre, path=None)
spécifie un répertoire : extrait
différent où un membre (nom complet) de l'archive dans
l'extraire. le
répertoire courant; path spécifie un répertoire différent où l'extraire.
0
Python
Données Persistantes
Manipuler les fichiers et les dossiers à l’aide du module os
0
Python
Données Persistantes
Manipuler les fichiers et les dossiers à l’aide du module os