No hace mucho tiempo, la tarea que tenía ante mí era analizar la cantidad de archivos de Excel creados para un mes particular del año. No entraré en detalles, diré brevemente: evaluar el trabajo de los empleados de una empresa. Había alrededor de mil archivos y la esencia de la tarea era hacer un programa comprensible en forma de histograma para el jefe de la empresa, en qué mes del año y cuántos archivos se hicieron (estas fueron notas de envío).
Pensé que sería bueno usar metadatos de archivo para este propósito, es decir ejecute los archivos existentes en un bucle, extraiga las fechas de creación del archivo y cárguelo todo como una lista en Matplotlib para crear un histograma.
Nunca antes había trabajado con metadatos, aunque la necesidad surgía periódicamente, pero se prescindía de ella por otros medios, por lo que no había experiencia. Y a la mañana siguiente, después de preparar sándwiches y tomar un litro de café, comenzó a implementar su idea.
"Proceder", por supuesto, se dice fuertemente. En primer lugar, es natural buscar en Internet información sobre metadatos, sobre cómo trabajar con ellos en Python, proyectos similares, etc. Casi inmediatamente me encontré con el módulo de oletools para Python, está en GitHub, y en PyPi, hay buena documentación. Lo estudié por un par de horas. Oletools instalados. Todo funcionó, los metadatos se extrajeron correctamente. Pero En la terminal Necesitaba un guión con un bucle. Dondequiera que yo en Internet no buscaba cómo "hacer amigos" de los oletools e IDLE, llegaba a 15 (!) Páginas en un motor de búsqueda. La información es cero.
Estoy seguro, sin ninguna duda, de que este es un módulo maravilloso, probablemente muy poderoso, pero no funcionó para mí. En el siguiente intento (por la tarde) de forzar al script a extraer de alguna manera los metadatos del archivo, se produjo otra excepción. Y aquí noté que los oletools cargan el módulo olefile para el trabajo. Escribí en un motor de búsqueda y cuál fue mi sorpresa cuando descubrí que esto es exactamente lo que estaba buscando todo el día. Documentación muy clara. Lo leí en media hora e inmediatamente en el curso de la lectura dibujé un guión.
olefile : pip3 install --user olefile
Y aquí está el script en sí, que extrae metadatos del archivo de Excel (solo necesitaba el valor 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() #
No daré todo el código para mi script aquí, mi tarea en esta publicación fue hablar sobre la extracción simple y rápida de metadatos de un archivo Excel usando el módulo olefile. Por cierto, este módulo extrae metadatos de una variedad de formatos de archivo, se pueden encontrar más detalles en la documentación .
Para ser justos, también vale la pena señalar que olefile extrae metadatos solo de archivos Excel 1997-2003, es decir con la extensión .xls. Para los archivos .xlsx, escribí un convertidor con el módulo pyexcel.
Bueno, eso es todo. Gracias por su atención, espero que mi publicación ayude a alguien a ahorrar tiempo, nervios y, lo más importante, a mantener un buen humor.