提取ZIP文件中的图片到docx

近期在整理之前14年的笔记,由于当前使用的笔记软件采用的方式是类似zip压缩的方式进行存储,由于想再提取对应文本的同时把图片直接写入到docx文件,避免因为过多图片造成上传时大量小文件的问题。
经过了一些折腾,成功的实现了对应的操作,下面是对应的代码:

from StringIO import StringIO  
from docx import Document  
from zipfile import ZipFile  

doc = Document()  
zip = ZipFIle('1.zip')  
for name in zip.namelist():  
    if name.startswith('image'):  
        data = StringIO(zip.read(name))  
        doc.add_picture(data)  
doc.save('1.docx')  
zip.close()

在这里,我们对image目录下图片依次写入到docx文件中。而如果要从docx文件中提取对应的图片,则相对比较麻烦一些,但是方法还是一样的,可以将docx看成1个zip文件,对其中的XML里面的内容进行提取来得到对应的图片。

若文章对您有帮助,请打赏1块钱。您的支持,可以让我分享更多精彩的文章。转载请注明来源


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。