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,上传后在更新

目录
相关文章
|
3月前
|
XML 数据格式 Python
从手动编辑到代码生成:Python 助你高效创建 Word 文档
本文介绍如何用Python实现Word文档自动化生成,结合python-docx、openpyxl和matplotlib库,高效完成报告撰写、数据插入与图表生成,大幅提升办公效率,降低格式错误,实现数据驱动的文档管理。
655 2
|
5月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
301 0
|
4月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
360 3
|
4月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1231 0
|
6月前
|
XML Linux 区块链
Python提取Word表格数据教程(含.doc/.docx)
本文介绍了使用LibreOffice和python-docx库处理DOC文档表格的方法。首先需安装LibreOffice进行DOC到DOCX的格式转换,然后通过python-docx读取和修改表格数据。文中提供了详细的代码示例,包括格式转换函数、表格读取函数以及修改保存功能。该方法适用于Windows和Linux系统,解决了老旧DOC格式文档的处理难题,为需要处理历史文档的用户提供了实用解决方案。
766 0
|
5月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
1407 0
|
6月前
|
Python
Python 办公实战:用 python-docx 自动生成 Word 文档
本文详解如何使用 python-docx 库实现 Word 文档自动化生成,涵盖环境搭建、文档创建、格式设置、表格与图片处理、模板填充、批量生成及性能优化等实战技巧,助你高效完成办公场景中的文档自动化任务。
1799 1
|
6月前
|
数据采集 存储 监控
Python爬虫实战:批量下载亚马逊商品图片
Python爬虫实战:批量下载亚马逊商品图片
|
6月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
145 0
|
Linux Python Windows
Python小技巧:如何批量更新已安装的库?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 众所周知,升级某个库(假设为 xxx),可以用pip install --upgrade xxx 命令,或者简写成pip install -U xxx 。
Python小技巧:如何批量更新已安装的库?

推荐镜像

更多