Data">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
6 vues22 pages

Gestion des fichiers en Python et automatisation

Le chapitre 3 aborde la gestion des fichiers en Python, en se concentrant sur l'ouverture, la lecture et l'écriture de fichiers, ainsi que sur l'utilisation de formats comme JSON pour la persistance des données. Il compare les modules classiques comme 'os' avec des approches modernes comme 'pathlib' pour la manipulation des systèmes de fichiers. Des bonnes pratiques et des pièges à éviter lors de la gestion des fichiers et de l'automatisation des tâches sont également discutés.

Transféré par

younesyasser517
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)
6 vues22 pages

Gestion des fichiers en Python et automatisation

Le chapitre 3 aborde la gestion des fichiers en Python, en se concentrant sur l'ouverture, la lecture et l'écriture de fichiers, ainsi que sur l'utilisation de formats comme JSON pour la persistance des données. Il compare les modules classiques comme 'os' avec des approches modernes comme 'pathlib' pour la manipulation des systèmes de fichiers. Des bonnes pratiques et des pièges à éviter lors de la gestion des fichiers et de l'automatisation des tâches sont également discutés.

Transféré par

younesyasser517
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

Chapitre 3: Gestion des fichiers et

Automatisation des tâches

Module: Programmation Python | Filières IDS & GI, Semestre 3 | AU: 2025-2026
Gestion des fichiers en Python

1. Les Fondamentaux: 2. Gérer le Système de Fichiers


• Apprendre à ouvrir, lire, et • Découvrir les outils pour naviguer et
écrire des données de manière manipuler les dossiers et les fichiers.
fiable et efficace. • Nous comparerons l'approche
• Traiter les fichiers texte et le classique (os) à l'approche moderne
format JSON. (pathLib).

83
L'importance de la gestion des fichiers

Les fichiers sont essentiels pour :

• Persister les données au-delà de l'exécution du


programme
• Échanger des informations entre applications
• Stocker des configurations et des paramètres
• Enregistrer des logs et des résultats
• Traiter de grandes quantités de données

Python offre des outils puissants et simples pour manipuler les fichiers de
manière efficace et sécurisée.

84
Le Premier Contact: Ouvrir et Fermer un Fichier
La fonction open()

file = open("nom_fichier.txt", "mode", file = open("[Link]", "r")


encoding="utf-8") # …Opérations sur le fichier …
# …Opérations sur le fichier … [Link]()
[Link]()

Modes d'ouverture principaux

'r' : Lecture (read) - mode par défaut


'w' : Écriture (write) - écrase le contenu existant
'a' : Ajout (append) - ajoute à la fin
'x' : Création exclusive - échoue si le fichier existe
'b' : Mode binaire - à combiner avec les autres modes
'+' : Lecture et écriture

85
Le Premier Contact: Ouvrir et Fermer un Fichier
Modes d'ouverture principaux

Tableau récapitulatif

Mode Lecture Écriture Curseur initial Si fichier EXISTE Si fichier N'existe PAS
r ✓ ✗ Début Lecture normale FileNotFoundError
r+ ✓ ✓ Début Lecture/écriture FileNotFoundError
w ✗ ✓ Début Écrase tout Crée le fichier
w+ ✓ ✓ Début Écrase tout Crée le fichier
a ✗ ✓ Fin Ajoute à la fin Crée le fichier
a+ ✓ ✓ Fin Ajoute à la fin Crée le fichier
x ✗ ✓ Début FileExistsError Crée le fichier

86
Le Premier Contact: Ouvrir et Fermer un Fichier
La Méthode Classique La Bonne Pratique (Recommandée)
f = open() / f. close() with open( ... )

chemin = r"C:\Users\Documents\[Link]" chemin = r"C:\Users\Documents\[Link]"


# Ouvrir un fichier # Le gestionnaire de contexte 'with' garantit
f = open(chemin, "r") # la fermeture automatique du fichier.
with open(chemin, "r") as f:
# ...Opérations sur le f i c h i e r . . . # Le fichier est ouvert ici
pass
# Fermer un fichier (étape cruciale et facile # Le fichier est automatiquement fermé ici
à oublier)
[Link]()
Avantages
• Fermeture automatique du fichier, même
en cas d'erreur
Cette méthode requiert une gestion manuelle • Évite les fuites de ressources
de la fermeture du fichier, ce qui peut entraîner • Gérer plusieurs fichiers à la fois
des fuites de ressources si elle est omise.
with open(chemin, "r") as f1, open(chemin2,
"r") as f2:
87
Gestion des fichiers
Lire le contenu d’un fichier : Différentesfaçonsdelireunfichier
with open("[Link]", "r") as f: with open("[Link]", "r") as f:
# Lire tout le contenu # Lire toutes les lignes dans une liste
all = [Link]() # retourne un string lignes = [Link]() # retourne une liste
# Réinitialise le curseur au début (position 0) #['ligne1\n', 'ligne2\n', 'ligne3\n’,… ]
[Link](0) # Itérer ligne par ligne (recommandé)
# Lire une ligne [Link](0)
ligne = [Link]() # retourne un string for ligne in f:
# Lire la deuxième ligne print([Link]())
deuxieme_ligne = [Link]()

- readlines() conserve les sauts de ligne ("\n"). Pour une


- Appeler 'f. read()' une deuxième fois renverra une chaîne vide liste "propre", combinez "read()" et splitlines():
car le curseur est à la fin du fichier. Contenu = [Link]().splitlines()
- Utilisez 'f. seek(0)' pour le ramener au début. - Un objet fichier est itérable. On peut le parcourir
- Pour éviter les UnicodeDecodeError avec des caractères directement avec une boucle for.
spéciaux (accents, etc.), spécifiez toujours l'encodage.
with open(chemin, "r", encodinq= 'utf-8' ) as f:
Conseil : Pour les gros fichiers, privilégiez l'itération ligne par
ligne pour économiser la mémoire. 88
Gestion des fichiers
Ecriture dans des fichiers
# Écriture simple (écrase le contenu)
with open("[Link]", "w") as f:
[Link]("Première ligne\n")
[Link]("Deuxième ligne\n")
# Écriture multiple avec writelines()
lignes = ["Ligne 1\n", "Ligne 2\n", "Ligne 3\n"] # Avec write() - nécessite \n manuel
with open("[Link]", "w") as f: with open("test_write.txt", "w") as f:
[Link](lignes) [Link]("Ligne 1\n")
# Ajout à la fin d'un fichier [Link]("Ligne 2\n")
with open("[Link]", "a") as f:
[Link]("Nouvelle ligne ajoutée\n") # Avec print() - \n automatique
with open("test_print.txt", "w") as f:
print("Ligne 1", file=f)
print("Ligne 2", file=f)

- write() et writelines() n'ajoutent PAS automatiquement de


\n à la fin de chaque ligne.
- vous devez ajouter explicitement \n

89
Gestion des fichiers
Les fichiers JSON : Persistance des Données avec JSON

Pourquoi utiliser JSON ?


→ Pour sauvegarder des structures de données Python (listes,
dictionnaires) et les récupérer intactes, avec leur type
d'origine.
• Écrire en J S O N → [Link]()

• Lire depuis J S O N [Link]()

90
Gestion des fichiers
Lire et écrire dans un fichier JSON

Écrire e n J S O N ([Link] (objpython, fileJSON))

Convertit un objet Python en une chaîne de format JSON et l'écrit dans un


fichier.

{
import json
"idEtud": "250222",
data = {"idEtud": "250222",
"nom": "ALAMI",
"nom": "ALAMI",
"notes": [13,15,17]}
"notes": [
with open("[Link]", "w", 13,
encoding="utf-8") as f: 15,
# Convertit le dictionnaire data en 17
JSON et l'écrit dans le fichier ]
[Link](data, f, indent=4) }

91
Gestion des fichiers
Lire et écrire dans un fichier JSON

Lire depuis J S O N ([Link] (fileJSON))

Lire un fichier JSON et recréer l’objet Python correspondant.

import json
with open("[Link]", "r", encodinq='utf-8') as f:
contenu = [Link](f) >>> 'ALAMI’
print(contenu['nom’]) >>> <'class dict'>
print(type(contenu))

92
Gestion des fichiers
JSON: Bonne Pratiques et Pièges à Eviter

93
Gestion des fichiers
Lire et écrire dans un fichier JSON
D’après le script suivant, quel sera le contenu du fichier f ?

import json
# Premier écriture
data1 = {"nom": "Karim"} {
with open("[Link]", "w") as f: "nom": "Karim"
[Link](data1, f, indent=4) }{
"nom": "Ahmed"
# Deuxième écriture }
data2 = {"nom": "Ahmed"}
with open("[Link]", "a") as f:
[Link](data2, f, indent=4)

1. Deux objets JSON racines - le format JSON ne permet qu'un seul objet racine
Problèmes :
2. Syntaxe invalide - pas de séparation entre les objets

3. Impossible à lire avec [Link]() (data = [Link](f) # Erreur: JSONDecodeError )


94
Gestion des fichiers
Lire et écrire dans un fichier JSON
Solution 1 : Utiliser une liste comme conteneur principal

import json [
# Premier écriture - créer une liste {
data1 = {"nom": "Karim"}
"nom": "Karim"
with open("[Link]", "w") as f:
# Mettre dans une liste
},
[Link]([data1], f, indent=4) {
"nom": "Ahmed"
# Deuxième écriture - lire, modifier, réécrire }
data2 = {"nom": "Ahmed"} ]
with open("[Link]", "r") as f:
# Charger la liste existante
donnees = [Link](f)
# Ajouter le nouvel objet
[Link](data2)

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


[Link](donnees, f, indent=4)
95
Gestion des fichiers
Lire et écrire dans un fichier JSON
Solution 2 : Utiliser un dictionnaire avec des clés uniques

import json {
"utilisateur1": {
# Premier écriture "nom": "Karim"
data1 = {"nom": "Karim"} },
with open("[Link]", "w") as f: "utilisateur2": {
[Link]({"utilisateur1": data1}, f,
"nom": "Ahmed"
indent=4)
}
# Deuxième écriture }
data2 = {"nom": "Ahmed"}
with open("[Link]", "r") as f:
donnees = [Link](f)
# Ajouter avec une nouvelle clé
donnees["utilisateur2"] = data2
with open("[Link]", "w") as f:
[Link](donnees, f, indent=4)
96
Du fichier à l’Ecosystème de fichiers
Comment créer des dossiers, lister des fichiers, construire des chemins et automatiser l'organisation
de nos tâches ?

Il existe différents modules (os, glob, shutil, pathlib) pour la


manipulation des chemins de fichiers et de dossiers, et pour
l’exécution de différentes opérations comme la création, la
recherche à l’intérieur d’une structure de dossier, etc…

Le Module 'os' : La Voie des Chaînes de Caractères Le Module 'pathtib': La Voie des Objets

Le module historique de Python pour L'approche moderne (Python


interagir avec le système d'exploitation. 3.4+). Ilreprésente les chemins
Il représente les chemins comme de comme des objets intelligents
simples chaînes de caractères ("str"). ("Path") dotés de Ieurs propres
méthodes. Plus intuitif et moins
Puissant, mais parfois limité.
sujet aux erreurs.

97
Du fichier à l’Ecosystème de fichiers
Comment créer des dossiers, lister des fichiers, construire des chemins et automatiser l'organisation
de nos tâches ?

La différence fondamentale entre os et pathlib

✓ Le module os représente les chemins sous forme de chaînes avec lesquelles


vous ne pouvez pas faire grand-chose.

✓ Le module pathlib représente les chemins comme des objets spéciaux avec
des méthodes et des attributs utiles.

98
Du fichier à l’Ecosystème de fichiers

99
Du fichier à l’Ecosystème de fichiers
La puissance de 'pathlib'

100
Du fichier à l’Ecosystème de fichiers
TRAVAUX PRATIQUES: L’automatisation en Action

101
Du fichier à l’Ecosystème de fichiers
TRAVAUX PRATIQUES: L’automatisation en Action

102
Du fichier à l’Ecosystème de fichiers
TRAVAUX PRATIQUES: L’automatisation en Action

103

Vous aimerez peut-être aussi