Vor nicht allzu langer Zeit bestand die Aufgabe vor mir darin, die Anzahl der Excel-Dateien zu analysieren, die für einen bestimmten Monat des Jahres erstellt wurden. Ich werde nicht auf Details eingehen, ich werde kurz sagen: die Arbeit der Mitarbeiter eines Unternehmens zu bewerten. Es gab ungefähr tausend Akten, und der Kern der Aufgabe bestand darin, einen verständlichen Zeitplan in Form eines Histogramms für den Leiter des Unternehmens zu erstellen, in welchem Monat des Jahres und wie viele Akten erstellt wurden (dies waren Frachtbriefe).
Ich dachte, dass es schön wäre, Dateimetadaten für diesen Zweck zu verwenden, d.h. Führen Sie die vorhandenen Dateien in einer Schleife aus, extrahieren Sie die Dateierstellungsdaten und laden Sie alles als Liste in Matplotlib, um ein Histogramm zu erstellen.
Ich hatte vor dieser Zeit noch nie mit Metadaten gearbeitet, obwohl der Bedarf regelmäßig auftrat, aber auf andere Weise verzichtet wurde, sodass es keine Erfahrung gab. Und am nächsten Morgen, nachdem er Sandwiches gemacht und eine Liter Tasse Kaffee mitgebracht hatte, machte er sich daran, seine Idee umzusetzen.
"Weiter" wird natürlich stark gesagt. Zunächst ist es selbstverständlich, im Internet nach Informationen zu Metadaten, zur Arbeit mit ihnen in Python, ähnlichen Projekten usw. zu suchen. Fast sofort bin ich auf das oletools-Modul für Python gestoßen, es ist auf GitHub und in PyPi gibt es eine gute Dokumentation. Ich habe es ein paar Stunden lang studiert. Installierte oletools. Alles hat funktioniert, Metadaten wurden korrekt extrahiert. Aber. Im Terminal. Ich brauchte ein Skript mit einer Schleife. Wo immer ich im Internet nicht nach Möglichkeiten gesucht habe, Freunde von Oletools und IDLE zu finden, habe ich in einer Suchmaschine 15 (!) Seiten erreicht. Information ist Null.
Ich bin mir ohne Zweifel sicher, dass dies ein wunderbares Modul ist, wahrscheinlich sehr leistungsfähig, aber es hat für mich nicht geklappt. Beim nächsten Versuch (am 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 tippte eine Suchmaschine ein und was war meine Überraschung, als ich entdeckte, dass dies genau das ist, wonach ich den ganzen Tag gesucht habe. Sehr übersichtliche Dokumentation. Ich las es in einer halben Stunde und skizzierte sofort im Laufe des Lesens ein Drehbuch.
olefile : pip3 install --user olefile
Und hier ist das Skript selbst, das Metadaten aus einer Excel-Datei extrahiert (ich brauchte nur den Wert 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 für mein Skript 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 sprechen. Dieses Modul extrahiert übrigens Metadaten aus verschiedenen Dateiformaten. Weitere Details finden Sie in der Dokumentation .
Fairerweise ist es auch erwähnenswert, dass 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 Beitrag hilft jemandem, Zeit und Nerven zu sparen und vor allem gute Laune zu bewahren.