0% ont trouvé ce document utile (0 vote)
7 vues2 pages

DL Fichier Module

Le devoir libre pour le Master MIN de l'année 2025-2026 consiste à créer un script Python pour manipuler des fichiers et traiter des données matricielles. Les étudiants doivent implémenter deux fonctions : une pour générer des matrices aléatoires et les stocker dans un fichier, et une autre pour lire ces matrices, calculer leur déterminant et leur inverse, puis produire un rapport. Le document fournit des instructions techniques sur la manipulation de fichiers et des exemples d'exécution.

Transféré par

brahim el moubaraki
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)
7 vues2 pages

DL Fichier Module

Le devoir libre pour le Master MIN de l'année 2025-2026 consiste à créer un script Python pour manipuler des fichiers et traiter des données matricielles. Les étudiants doivent implémenter deux fonctions : une pour générer des matrices aléatoires et les stocker dans un fichier, et une autre pour lire ces matrices, calculer leur déterminant et leur inverse, puis produire un rapport. Le document fournit des instructions techniques sur la manipulation de fichiers et des exemples d'exécution.

Transféré par

brahim el moubaraki
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

Master MIN Année 2025-2026

Devoir Libre : Manipulation de Fichiers &


Numpy
Automatisation et Persistance de Données Matricielles

Contexte
En calcul scientifique, les données ne proviennent pas toujours de l’entrée utilisateur. Elles sont
souvent stockées dans des fichiers textes massifs (logs de capteurs, résultats de simulations). L’objectif
de ce DL est de créer une chaîne de traitement complète en Python capable de :
1. Générer des données de test (matrices aléatoires) et les stocker sur le disque.
2. Lire ces fichiers, traiter l’information (Algèbre Linéaire) et produire un rapport.

1 Rappels Techniques : Fichiers et Modules


1. Importation et Système

Pour manipuler des fichiers, nous avons besoin du module os (Operating System) et pour le
calcul, de numpy.
1 import numpy as np
2 import os
3
4 # Obtenir le chemin du dossier courant
5 chemin_actuel = os . getcwd ()
6 # Joindre proprement des chemins ( compatible Windows / Linux / Mac )
7 chemin_complet = os . path . join ( chemin_actuel , " mon_fichier . txt " )

2. Lecture et Écriture Sécurisée


On utilise le bloc with open(...) as f: qui garantit la fermeture du fichier même en cas
d’erreur.
1 # ÉCRITURE ( ’ w ’ = write ) : Cr é e ou é crase le fichier
2 with open ( " data . txt " , " w " ) as f :
3 f . write ( " Ligne 1\ n " ) # \ n pour le saut de ligne
4
5 # LECTURE ( ’ r ’ = read ) : Lit le fichier existant
6 with open ( " data . txt " , " r " ) as f :
7 contenu = f . read () # Lit tout dans une seule chaine
8 # ou
9 lignes = f . readlines () # Lit chaque ligne dans une liste

2 Cahier des Charges


Vous devez rendre un script nommé matrix_tools.py contenant deux fonctions.

1
Master MIN Année 2025-2026

Mission 1 : Le Générateur
Implémentez la fonction gen_matrices(fname, n, m) qui génère un fichier de données brutes.
— Entrées :
— fname (str) : Nom du fichier cible (ex : "[Link]").
— n (int) : Taille des matrices carrées (n × n).
— m (int) : Nombre de matrices à générer.
— Spécifications :
1. Les coefficients doivent être des entiers aléatoires entre -100 et 100.
2. Écrire les m matrices à la suite dans le fichier.
3. Insérer une ligne vide entre chaque matrice pour les séparer.

Mission 2 : L’Analyste
Implémentez la fonction process_matrices(f_in, f_out) qui traite les données.
— Entrées : f_in (fichier source) et f_out (fichier rapport).
— Spécifications :
1. Vérifier si f_in existe (sinon afficher une erreur).
2. Lire le contenu et séparer les blocs de matrices (Astuce : split(’
n
n’)).
3. Convertir chaque bloc de texte en [Link].
4. Pour chaque matrice, écrire dans f_out :
— Le numéro de la matrice.
— Son déterminant (arrondi à 2 décimales).
— Son inverse si elle est inversible (si |det| > 10−9 ), sinon écrire "Singulière".

3 Exemple d’Exécution et Formatage


Voici à quoi doivent ressembler vos fichiers pour un appel :
gen_matrices("[Link]", 2, 2) suivi de process_matrices("[Link]", "[Link]")
Fichier rapport ([Link]) :
Console / Fichier Sortie
Fichier généré ([Link]) :
--- Matrice 1 ---
Console / Fichier Sortie Valeurs :
[[12 -4]
12 -4
[ 5 88]]
5 88
Det : 1076.00
Inverse :
-3 10
0.082 0.004
4 2
-0.005 0.011
--- Matrice 2 ---
...

Indication pour la conversion Texte → Matrice :


Une fois le fichier lu, vous aurez des chaînes de caractères. Pour passer d’une chaine "1 2" à une liste
[1, 2], utilisez la compréhension de liste :
1 ligne_texte = " 12 -4 "
2 ligne_liste = [ int ( x ) for x in ligne_texte . split () ]

Vous aimerez peut-être aussi