Livres au local script
De April MediaWiki
Aller à la navigationAller à la recherche
Voici le script python utilisé pour convertir le fichier CSV (lui-même obtenu à partir dun fichier ODT) au format mediawiki pour le Wiki de l'April.
# encoding: utf-8 """ Script pour la conversion d'un fichier CSV en contenu mediawiki pour lister les livres empruntables au local de l'April. Il faut avoir un fichier au format CSV qui a les colonnes nécessaires avec les bons titres. Éventuellement, il faut renommer les colonnes spécifiées au début du script. Il faut spécifier le titre du fichier à lire. Il faut rediriger la sortie du script vers un fichier (c'est plus pratique). Le résultat représente la liste des livres complète. Attention, la page du wiki contient un exemple vide à la fin de la liste ! Date: 2023-10-04 Licence: AGPLv3+ """ import csv # Chemin complet vers le fichier à traiter FILE_PATH = "2023-09-biblio-April.csv" # Liste des entêtes à trouver dans le fichier # Les entêtes sont retrouvés via leur titre # Si un entête à une value "None", il est obligatoire # Si un entête à une value "optional", il est facultatif headers = { "Titre": None, "Maison d’édition ": None, "Autrice(s), auteur(s)": None, "Date de parution": None, "Nombre de pages": None, "ISBN": None, "Lien vers la page officielle du livre": None, "(disponible, emprunté par …)": None, "Date de l’emprunt le cas échéant": None, "Langue (français si non précisé": None, "Nombre d’exemplaires si différent de 1)": None, "Remarque éventuelle": None, } with open(FILE_PATH) as file_handle: reader = csv.reader(file_handle) for index, row in enumerate(next(reader, [])): for header in headers: if row.lower() == header.lower(): headers[header] = index # On vérifie qu'on a trouvé toutes les colonnes obligatoires for header in headers: if headers[header] is None: print(f"La colonne '{header}' n'a pas été trouvée.") exit(-1) for header in headers: if headers[header] == "optional": headers[header] = None if reader is not None: for row in reader: # On liste un livre, on prépare donc son texte au format mediawiki book = f"== {row[headers['Titre']]} ==\n\n" book += f"* Maison d'édition : {row[headers['Maison d’édition ']]}\n\n" book += f"* Autrices, auteurs : {row[headers['Autrice(s), auteur(s)']]}\n\n" book += f"* Date de parution : {row[headers['Date de parution']]}\n\n" book += f"* Nombre de pages : {row[headers['Nombre de pages']]}\n\n" book += f"* ISBN : {row[headers['ISBN']]}\n\n" book += f"* Lien web vers la page officielle du livre : {row[headers['Lien vers la page officielle du livre']]}\n\n" book += f"* État (disponible, emprunté) : {row[headers['(disponible, emprunté par …)']] or 'disponible'}\n\n" book += f"* Date de l'emprunt : {row[headers['Date de l’emprunt le cas échéant']]}\n\n" book += f"* Langue (français si non précisé) : {row[headers['Langue (français si non précisé']]}\n\n" book += f"* Nombre d'exemplaires (si différent de 1) : {row[headers['Nombre d’exemplaires si différent de 1)']]}\n\n" book += f"* Remarque éventuelle : {row[headers['Remarque éventuelle']]}\n\n" # On affiche le résultat print(book)
Ce script permet de mettre à jour le contenu de la page Livres_au_local