一、背景
有一个需求,需要从excle文件中提取插入的音频文件。通过查找发现在文档中插入的对象、附件,都是ole文件,因此查找python获取ole文件方法。尝试了一些方法发现都不能获取到原文件名称,最后查找发现oletools库可获取到原文件名称
二、实现功能
经过测试,可实现从word/excel/ppt中提取插入的附件、对象等文件(除word、excel、ppt文档外)。
对文件有要求,必须为docx、xlsx、pptx,因为这三种文件作为压缩文件打开后,有专门存放ole对象与图片的文件夹。
三、代码
import olefile
from oletools import oleobj
import os
import shutil
from zipfile import ZipFile
class GetOleFileUtil:
def __init__(self):
pass
def save_olefile(self, file, savepath):
name_dict = {
'xlsx': 'xl',
'docx': 'word',
'pptx': 'ppt'
}
try:
name = name_dict[os.path.splitext(file)[-1].replace('.', '')]
savefolder = self.create_folder(file, savepath)
with ZipFile(file, &