đ Traitement de fichiers en parallĂšle
đŻ Objectif pĂ©dagogiqueâ
- Lancer des tĂąches dâI/O disque en parallĂšle avec des threads.
đ ĂnoncĂ©â
Vous allez créer un mini-outil qui analyse plusieurs fichiers texte et, en bonus, lit un gros CSV par morceaux.
Partie 1 â Mise en placeâ
- Ăcrivez creer_fichiers_test(dossier="test_fichiers")qui crĂ©e 10 fichiers.txtavec quelques lignes de texte.
- Vérifiez que les fichiers sont bien créés.
- Ăcrivez analyser_fichier_texte(chemin)qui retourne un dictionnaire avec les champs suivants:- {'taille': bytes, 'lignes': n, 'caracteres': c}.
 
Partie 2 â Analyse sĂ©quentielleâ
Ăcrivez traiter_fichiers_sequentiel(dossier) qui:
- Parcourt tous les .txt, appelleanalyser_fichier_texte.
- Mesure le temps total.
Partie 3 â Analyse en parallĂšle avec threadsâ
- Ăcrivez traiter_fichiers_threads(dossier)qui:- Utilise threading.Threadpour lancer lâanalyse de chaque fichier avec la fonctionanalyser_fichier_texte(chemin).
- Partage un dict resultatsprotégé parthreading.Lock(écritures protégées).
- Mesure le temps total.
 
- Utilise 
- Comparez les temps avec la baseline séquentielle.
Partie 4 â Analyse avec ThreadPoolExecutorâ
- Ăcrivez traiter_fichiers_threadpool(dossier, max_workers=2)qui:- Utilise concurrent.futures.ThreadPoolExecutorpour gĂ©rer un pool de threads.
- Soumet les tĂąches dâanalyse et collecte les rĂ©sultats.
 
- Utilise 
- Comparez les temps avec les versions précédentes.