Métadonnées des fichiers Excel

Il n'y a pas si longtemps, la tâche devant moi était d'analyser le nombre de fichiers Excel créés pour un mois particulier de l'année. Je n'entrerai pas dans les détails, je dirai brièvement: évaluer le travail des salariés d'une entreprise. Il y avait environ un millier de fichiers et l'essentiel de la tâche consistait à établir un calendrier compréhensible sous la forme d'un histogramme pour le chef de l'entreprise, dans quel mois de l'année et combien de fichiers ont été créés (il s'agissait de lettres de voiture).
J'ai pensé qu'il serait bien d'utiliser des métadonnées de fichier à cet effet, c'est-à-dire exécutez les fichiers existants en boucle, extrayez les dates de création des fichiers et chargez le tout sous forme de liste dans Matplotlib pour créer un histogramme.


Je n'avais jamais travaillé avec des métadonnées avant cette époque, bien que le besoin se soit fait sentir périodiquement, mais qu'il ait été supprimé par d'autres moyens, il n'y avait donc aucune expérience. Et le lendemain matin, après avoir fait des sandwichs et un litre de café, il s'est mis à concrétiser son idée.


«Procéder», bien sûr, est fortement dit. Tout d'abord, il est naturel de rechercher sur Internet des informations sur les métadonnées, sur la façon de les utiliser en Python, sur des projets similaires, etc. Presque immédiatement, je suis tombé sur le module oletools pour Python, il est sur GitHub, et dans PyPi, il y a une bonne documentation. Je l'ai étudié pendant quelques heures. Oletools installés. Tout a fonctionné, les métadonnées ont été correctement extraites. Mais. Dans le terminal. J'avais besoin d'un script avec une boucle. Partout où je n'ai pas cherché sur Internet comment "me faire des amis" avec oletools et IDLE, j'ai atteint 15 (!) Pages dans un moteur de recherche. L'information est nulle.


Je suis sûr, sans aucun doute, que c'est un merveilleux module, probablement très puissant, mais cela n'a pas fonctionné pour moi. Lors de la tentative suivante (dans la soirée) pour forcer le script à extraire en quelque sorte les métadonnées du fichier, une autre exception a été levée. Et ici, j'ai remarqué que oletools charge le module olefile pour le travail. J'ai tapé dans un moteur de recherche et quelle a été ma surprise quand j'ai découvert que c'est exactement ce que je cherchais toute la journée. Documentation très claire. Je l'ai lu en une demi-heure et immédiatement au cours de la lecture, j'ai dessiné un script.


  olefile  : pip3 install --user olefile 

Et voici le script lui-même, qui extrait les métadonnées du fichier Excel (j'avais seulement besoin de la valeur meta.last_saved_time):


 import olefile File_Ole='File.xls' assert olefile.isOleFile(File_Ole) #   OLE  ole = olefile.OleFileIO(File_Ole) meta = ole.get_metadata() #   print('  : '+str(meta.create_time)) #     print('  : '+str(meta.last_saved_time))#     meta.dump() #      ole.close() #   

Je ne donnerai pas tout le code de mon script ici, ma tâche dans cet article était de parler de l'extraction simple et rapide des métadonnées d'un fichier Excel à l'aide du module olefile. Soit dit en passant, ce module extrait les métadonnées d'une variété de formats de fichiers, plus de détails peuvent être trouvés dans la documentation .


En toute honnêteté, il convient également de noter que le fichier olefile extrait les métadonnées uniquement des fichiers Excel 1997-2003, c'est-à-dire avec l'extension .xls. Pour les fichiers .xlsx, j'ai écrit un convertisseur avec le module pyexcel.


C’est tout. Merci de votre attention, j'espère que mon message aidera quelqu'un à gagner du temps, des nerfs et, surtout, à maintenir une bonne humeur.

Source: https://habr.com/ru/post/fr439358/


All Articles