Belum lama ini, tugas sebelum saya adalah menganalisis jumlah file Excel yang dibuat untuk bulan tertentu tahun ini. Saya tidak akan merinci, saya akan mengatakan secara singkat: untuk mengevaluasi pekerjaan karyawan dari satu perusahaan. Ada sekitar seribu file dan esensi dari tugas ini adalah membuat jadwal yang dapat dipahami dalam bentuk histogram untuk kepala perusahaan, di mana bulan tahun itu dan berapa banyak file yang dibuat (ini adalah catatan pengiriman).
Saya pikir akan lebih baik menggunakan metadata file untuk tujuan ini, yaitu jalankan file yang ada dalam satu lingkaran, ekstrak tanggal pembuatan file dan muat semuanya sebagai daftar ke Matplotlib untuk membuat histogram.
Saya belum pernah bekerja dengan metadata sebelum waktu ini, meskipun kebutuhan muncul secara berkala, tetapi dihilangkan dengan cara lain, jadi tidak ada pengalaman. Dan keesokan paginya, setelah membuat sandwich dan minum satu liter kopi, dia mulai menerapkan idenya.
"Lanjutkan" tentu saja sangat diucapkan. Pertama-tama, wajar untuk mencari informasi tentang metadata di Internet, tentang bekerja dengan mereka dalam Python, proyek serupa, dll. Hampir segera saya menemukan modul oletools untuk Python, ada di GitHub, dan di PyPi, ada dokumentasi yang bagus. Saya mempelajarinya selama beberapa jam. Oletool yang dipasang. Semuanya berfungsi, metadata diekstraksi dengan benar. Tapi Di terminal. Saya membutuhkan skrip dengan loop. Di mana pun saya di Internet tidak mencari cara untuk "berteman" dengan oletools dan IDLE, saya mencapai 15 (!) Halaman di mesin pencari. Informasi adalah nol.
Saya yakin, tanpa keraguan, bahwa ini adalah modul yang luar biasa, mungkin sangat kuat, tetapi tidak berhasil bagi saya. Dalam upaya lain (pada malam hari) untuk memaksa script entah bagaimana mengekstrak metadata file, pengecualian lain muncul. Dan di sini saya perhatikan bahwa oletools memuat modul olefile untuk bekerja. Saya mengetik di mesin pencari dan apa yang mengejutkan saya ketika saya menemukan bahwa ini adalah persis apa yang saya cari sepanjang hari. Dokumentasi yang sangat jelas. Saya membacanya dalam waktu setengah jam dan segera setelah membaca, saya membuat sketsa.
olefile : pip3 install --user olefile
Dan di sini adalah skrip itu sendiri, yang mengekstrak metadata dari file Excel (saya hanya membutuhkan nilai 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() #
Saya tidak akan memberikan semua kode untuk skrip saya di sini, tugas saya dalam posting ini adalah berbicara tentang ekstraksi metadata yang sederhana dan cepat dari file Excel menggunakan modul olefile. Omong-omong, modul ini mengekstraksi metadata dari berbagai format file, untuk lebih jelasnya , lihat dokumentasi .
Dalam keadilan, perlu dicatat bahwa ekstrak olefile hanya metadata dari file Excel 1997-2003, mis. dengan ekstensi .xls. Untuk file .xlsx, saya menulis konverter dengan modul pyexcel.
Yah, itu saja. Terima kasih atas perhatian Anda, saya berharap posting saya akan membantu seseorang menghemat waktu, saraf, dan yang paling penting, menjaga suasana hati yang baik.