Python批量提取多目录下多个word文档中的图片

简介: Python批量提取多目录下多个word文档中的图片

title: Python批量提取多目录下多个word文档中的图片
date: 2020-03-27 17:35:25.0
updated: 2020-09-27 20:34:30.0
categories:

  • 代码

tags:

  • Python

写在前面

写这个的起因是源于帮老师收一次作业,要求拍照,于是就收到的各式各样的格式,图片在一个文档中还能直接取出(将 word 另存为网页格式,就能看到所有图片),一个班几十号人,每人一个文档,一个文档中就几张图片,真的很难提取,于是就有了这个项目。。。

实现思路

以 office 保存的 word 文件,修改后缀为 zip 格式,解压后在 word/media 下保存了文档中所有的图片,就很容易实现了,修改后缀->取出 word/media 目录下所有的图片->保存图片即可,
当然你用 wps 保存的文档是 doc,他就不能这么做,要先将 doc 转为 docx(不是直接改后缀名,要修改属性值)
使用的前提是要装了 office

遇到问题

Python3.x 好像都不能安装 win32com,py2.7 可以,Python3.x 可以使用此方法

pip install pypiwin32

多线程处理的时候,报了一个“pywintypes.com_error: (-2147221008, '尚未调用 CoInitialize。', None, None)”的错误,主线程运行的时候就不会,应该就是多个线程共用了一个资源,我们就需要在每一个线程里单独初始化,在 csdn 里找到解决方案如下

import pythoncom

在打开 Word 文件语句之前输入

pythoncom.CoInitialize()

即可解决
另外的一个需求是在提取目录下所有 Word 文档中的图片后,是否需要删除源文档,这就需要每个目录下的文件都由用户输入来决定,可在多线程里面,会将多个线程的等待输入语句一起输出,就不能做到等待用户输入了(我技术不到位,实现不了)
也试过线程锁,以及 thread.join(),好像都无法实现,后来找到一个解决方案,通过图形界面的输入框来实现这个需求即可
还有就是打包成可执行文件时,直接打包会将系统环境中的所有库都打包,程序就会很大,可以使用 pipenv 虚拟环境打包
安装 pipenv

pip install pipenv

为当前目录建立虚拟环境

pipenv install

进入虚拟环境(上一步可省略,因为没有虚拟环境的话会自动建立一个)

pipenv shell

安装程序中所用到的额外包(Python 自带的库就不用装了,装 site-package 下面的),以及 pyinstaller(Python 打包库)即可

使用演示

原来的目录
1.webp
单线程操作
2.webp
多线程操作
1.webp

写在结尾

那个多线程等待用户输入有知道的小伙伴,麻烦说一下呗
软件下载地址:下载 Word 图片提取批处理工具
源码还没上传 GitHub,上传后在更新

目录
相关文章
|
23天前
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
122 1
|
23天前
|
安全 项目管理 Python
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
|
30天前
|
JSON 测试技术 API
Python开发解析Swagger文档小工具
文章介绍了如何使用Python开发一个解析Swagger文档的小工具,该工具可以生成符合httprunner测试框架的json/yaml测试用例,同时还能输出Excel文件,以方便测试人员根据不同需求使用。文章提供了详细的开发步骤、环境配置和使用示例,并鼓励读者为该开源项目贡献代码和建议。
23 1
Python开发解析Swagger文档小工具
|
24天前
|
数据安全/隐私保护 Python Windows
三种方法,Python轻松提取PDF中全部图片
三种方法,Python轻松提取PDF中全部图片
|
23天前
|
存储 编解码 API
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
20 1
|
1月前
|
XML 存储 数据格式
使用Python的zipfile模块巧解Word批量生成问题
通过以上步骤,我们得到了填充了特定数据的 Word 文档。这个过程可以通过循环对多个数据集重复执行,从而实现批量生成多个 Word 文档的目标。
15 5
|
1月前
|
Python
Python 下载 html 中的 图片
Python 下载 html 中的 图片
21 2
|
1月前
|
Python
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。 本文将介绍如何使用Python实现PowerPoint演示文稿到图片的转换。
|
23天前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
22 0
|
24天前
|
Python
python 随机划分图片数据集以及移动标注
这篇文章提供了一个Python脚本,用于随机划分图片数据集为训练集和测试集,并将对应的标注文件移动到相应的子文件夹中,以减少训练使用的数据量。