UNIVERSITÉ DE CAEN
BUT Réseaux et Télécoms R208
TP2 – manipulation de structures de données (2h)
Dans ce TP, vous devrez écrire différents programmes afin de lire des formats de
données et les convertir dans d’autres formats. Comme le nombre de combinaisons pos-
sibles est grand, il n’y a pas d’exemple type ou de tutoriel : vous devez vous débrouiller !
Il faut bien comprendre que votre meilleur outil en tant que développeur de petits
scripts, c’est votre moteur de recherche ! De nombreux exemples de syntaxe sont dispo-
nibles sur des sites comme StackOverFlow, AskPython, ou encore la documentation of-
ficielle de Python... Je vous donne quelques ressources non-exhaustives à consulter, mais
libre à vous d’aller trouver mieux en ligne :
— [Link]
— [Link]
— [Link]
— [Link]
— [Link]
Exercice 1 Lecture et conversion d’un CSV
Téléchargez sur Ecampus [Link] qui contient une liste de films et différents attributs.
1. Ouvrez ce fichier avec un éditeur de texte et observez la syntaxe. Essayez d’ouvrir
le fichier sur un tableau (LibreOffice Calc par exemple)
2. Écrire une fonction readMovieCSV(file) qui prends en argument le chemin d’un
fichier CSV de films et qui retourne la liste des informations contenues dans le
fichier de film de manière plus lisible. Exemple d’exécution :
>>> readMovieCSV ( ’ . / movies . c s v ’ )
= Film numé r o 1 :
> T i t r e : The Godfather
> Genres : Crime Drama
> Anné e de s o r t i e : 1972
> Ré a l i s a t e u r : F r a n c i s Ford Coppola
> S c o r e moyen IMDB : 9 . 2
= Film numé r o 2 :
> T i t r e : The Shawshank Redemption
[...]
3. Écrire une fonction statsMovies(file) qui prends en argument le chemin d’un
fichier CSV de films. Elle affiche la moyenne des notes des films, celui qui a la plus
basse note et la plus haute.
1
4. Écrire une fonction CSVtoJSON(file) qui prends en entrée le chemin d’un fichier
CSV. Elle inspecte le contenu du fichier CSV et le convertit dans un fichier JSON
du même nom. Vous pouvez vérifier le bon format du JSON en ouvrant le fichier
dans un navigateur.
Exercice 2 JSON et XML
On souhaite maintenant convertir le fichier JSON au format XML. Le XML des films
doit avoir une balise générale movies qui elle-même contient plusieurs balises movie
représentant chacun un film. Un extrait du résultat souhaité :
1. Écrire la fonction JSONtoXML(file) qui prends en entrée le chemin du fichier
JSON. Elle lit les données JSON et crée un arbre XML avec les données formatées
comme ci-dessus. Enfin, elle écrit un fichier XML du même nom avec les bonnes
données converties.
,→ Utiliser la fonction [Link] afin de créer l’arbre de base et
le compléter au fur et à mesure. Ce n’est pas la fin du monde si votre fichier XML
final n’est pas indenté de manière lisible : on peut tester de l’ouvrir dans un navi-
gateur par exemple.
2. Pour les plus rapides :
— Ecrire des fonctions pour gérer ”toutes” les conversions possibles selon vos
envies : JSON vers CSV, XML vers JSON, etc.
— Écrire un schéma XML décrivant la structure que doit contenir le fichier des
films. Voir : [Link]
Utiliser l’outil en ligne de commande Linux xmllint afin de tester la validité
du fichier XML généré à partir du schéma passé en argument.