Excel-Metadatendateien

Vor nicht allzu langer Zeit stand ich vor der Aufgabe, die Anzahl der in einem bestimmten Monat des Jahres erstellten Excel-Dateien zu analysieren. Ich werde nicht ins Detail gehen, ich möchte kurz sagen: Die Arbeit der Mitarbeiter einer Firma bewerten. Es standen etwa tausend Dateien zur Verfügung, und der Kern der Aufgabe bestand darin, für den Firmenchef eine klare grafische Darstellung in Form eines Histogramms zu erstellen, in welchem ​​Monat des Jahres und wie viele Dateien erstellt wurden (dies waren Rechnungen).
Ich dachte, es wäre schön, Datei-Metadaten für diesen Zweck zu verwenden, d. H. Führen Sie die verfügbaren Dateien in einem Zyklus aus, extrahieren Sie die Dateierstellungsdaten und laden Sie sie als Liste in Matplotlib, um ein Histogramm zu erstellen.


Ich habe vorher noch nie mit Metadaten gearbeitet, obwohl es von Zeit zu Zeit ein Bedarf war, aber es wurde auf andere Weise verwaltet, so dass es keine Erfahrung gab. Und am nächsten Morgen, nachdem er Sandwiches gemacht und einen Liter Kaffee getrunken hatte, begann er seine Idee umzusetzen.


"Begonnen" hat natürlich stark gesagt. Zunächst einmal ist es natürlich, im Internet nach Informationen zu Metadaten, zur Arbeit mit Python, ähnlichen Projekten usw. zu suchen. Fast sofort bin ich auf das Oletools-Modul für Python gestoßen, es ist sowohl auf GitHub als auch auf PyPi, es gibt eine gute Dokumentation. Ich habe sie ein paar Stunden lang studiert. Installierte Oletools. Alles hat funktioniert, die Metadaten wurden korrekt abgerufen. Aber Im Terminal. Ich brauchte ein Skript mit einer Schleife. Wo auch immer ich im Internet nicht gesucht habe, wie ich Oletools und IDLE kennenlernen kann, habe ich 15 (!) Seiten in einer Suchmaschine erreicht. Information Null.


Ich bin mir sicher, dass dies ein wunderbares Modul ist, wahrscheinlich sehr mächtig, aber es kam mir überhaupt nicht. Beim nächsten Versuch (bis zum Abend), das Skript zu zwingen, die Dateimetadaten irgendwie zu extrahieren, wurde eine weitere Ausnahme ausgelöst. Und hier ist mir aufgefallen, dass Oletools das Olefile-Modul für die Arbeit lädt. Ich habe eine Suchmaschine eingetippt und was war meine Überraschung, als ich entdeckte, dass dies genau das ist, wonach ich den ganzen Tag gesucht habe. Sehr klare Dokumentation. Ich habe es in einer halben Stunde gelesen und sofort als ich es las, habe ich ein Skript entworfen.


Сначала установка olefile в системе:
pip3 install --user olefile

Und hier ist das Skript selbst, das Metadaten aus einer Excel-Datei extrahiert (ich brauchte nur den Wert von 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() # Закрытие файла

Ich werde hier nicht den gesamten Code meines Skripts angeben. Meine Aufgabe in diesem Beitrag war es, über das einfache und schnelle Extrahieren von Metadaten aus einer Excel-Datei mithilfe des Olefile-Moduls zu berichten. Dieses Modul extrahiert übrigens Metadaten aus verschiedenen Dateiformaten. Weitere Informationen finden Sie in der Dokumentation .


Es ist auch erwähnenswert, dass das Olefile Metadaten nur aus Excel 1997-2003-Dateien extrahiert, d. H. mit der Erweiterung .xls. Für .xlsx-Dateien habe ich einen Konverter mit dem pyexcel-Modul geschrieben.


Nun, das ist alles. Vielen Dank für Ihre Aufmerksamkeit. Ich hoffe, mein Post hilft jemandem, Zeit und Nerven zu sparen und vor allem gute Laune zu haben.


Jetzt auch beliebt: