Python3-word文档操作(八):提取word文档中的图片方式一-利用docx库

python3开发-Word助手 本文介绍了使用Python3开发Word助手的背景、思路、步骤和代码示例。通过使用python-docx库,我们可以方便地处理Word文档的编辑和提取等操作,提高了处理Word文档的效率。 阅读详情

1. 简介:

要获取word文档中的图片文件。思路就是先解压,再查找。python中,下面两个库都可以实现这个功能:

(1)zip库

(2)docx库

zip库:

上一篇博文已经提过,word本质上也是一个压缩文件,word文档中的img文件可以在解压后的文件中找到。所以,可以使用unzip进行解压,再查找img的方式来找到img文件。这种方式,请移步至:

Python3-word文档操作(七):提取word文档中的图片方式一-利用word文档的压缩文件属性

本篇中,主要介绍docx库来实现word文档中的图片的获取。 

2.使用docx库获取word中的图片:

核心思路:

1)使用docx库来实现;

2)创建一个doc,获取doc.part._rels属性,这是一个目录,根据这个属性,再一步一步找图片文件。

代码如下: 

# -*- coding: utf-8 -*-
import os
import sys
import re
import time
import docx
from docx.shared import RGBColor
from docx.shared import Pt

#抓取word文件中的图片
def fetch_image(doc_path, desc_path):
    doc = docx.Document(doc_path)
    dict_rel = doc.part._rels #rels其实是个目录
    for rel in dict_rel:
        rel = dict_rel[rel]
        print("rel",rel.target_ref)
        if "image" in rel.target_ref:
            # create_dir(desc_path)
            img_name = re.findall("/(.*)", rel.target_ref)[0]  #windos:/
            print("img_name",img_name)
            word_name = os.path.splitext(doc_path)[0]
            print("word_name",word_name)
            if os.sep in word_name:
                new_name = word_name.split('\\')[-1]
            else:
                new_name = word_name.split('/')[-1]
            img_name = f'{new_name}_{img_name}'
            with open(f'{desc_path}/{img_name}', "wb") as f:
                f.write(rel.target_part.blob)


def get_image():
    doc_name = "念奴娇_赤壁怀古.docx"
    desc_path = sys.argv[1]
    pwd = os.path.dirname(os.path.abspath(desc_path))
    print("[get_image]desc_path",desc_path)
    desc_path = os.path.join(pwd, desc_path) #目标路径
    fetch_image(doc_name,desc_path)

#创建目录
def create_dir(desc_path):
    if not os.path.exists(desc_path):
        os.makedirs(desc_path)

if __name__ == '__main__':
    #create_doc()
    #fetch_doc()
    #update_doc()
    #create_doc_table()
    #fetch_doc_table()
    #modify_doc_table()
    get_image()

运行结果:

 可以看出,我们成功的获取到了这个img文件。

说明:

1)get_image:设置要处理的word文件;调用fetch_image函数;

2)fetch_image:核心函数,用于获取word文件中的图片;

3)获取word文档的实例,再遍历 doc.part._rels。 
    doc = docx.Document(doc_path)
    dict_rel = doc.part._rels #rels其实是个目录

4)如果找到img文件,就创建,即写数据到文件中:

      f.write(rel.target_part.blob)


python 如何提取 word 内的图片 方法一:解压.docx 文件提取图片 前言 .docx 文件其实也就是一个压缩文件,当我们将一个.docx 文件直接解压后可以看到如下目录 其中我们要找的图片就在 word/media 目录内,如图 所以,要提取 word 内的图片就需要将.docx 文件解压,再从 media 文件内取得图片,然后将解压后的文件删除 代码 import os import shutil import zipf... 阅读详情

相关推荐

python读取WORD中表格中的文本及图片数据

现手头有几百个WORD文档,每个文档为针对某企业的安全隐患检查数据,包括隐患文字信息及图片。用PYTHON读取WORD中表格中的文本及图片数据。

weixin_47663607的博客 5099

python提取word文档里面的个人照片信息

背景需要分析一批高层次人才简历数据 环境 python 3.6 pip install docx 案例代码 def parse(): path = "xx简历.docx" doc = docx.Document(path) dict_rel = doc.part._rels for rel in dict_rel: rel = dict_rel[rel] if "image" in rel.target_ref: # 这里内容中会包含Im

Rocky 767

python-docx库读写word文档

python-docx库读写word文档 一、简介 python-docx是利用python来读写word文件的第三方库。 开源地址是:https://github.com/python-openxml/python-docx 官方教程:https://python-docx.readthedocs.io/en/latest/ 安装:pip install python-docx python-docx库读写word文档主要涉及三个结构对象,层层递进。 Document:文档对象 from docx i

kingwsq的专栏 8693

Python神技,快速提取Word中的图片

使用Python中的库,可以轻松地提取Word文档中的所有图片,而且只需要1行代码即可完成任务。这对于自动化文档处理和数据分析非常有用。

涛哥聊Python 3678

Python docx:在Python中创建和操作Word文档

就是markdown中的list,比如下面的这两个就是无序的,大标题1,2,3…创建一个包含文本、标题、表格、图像和格式的文档。

消极的人永远是对的,积极的人选择勇往直前 5145

python提取图片中的文字并生成word文档

python提取图片中的文字并生成word文档 近在学习的过程中发现书中有好多知识点,但本人过于懒惰,不爱翻书、记笔记,于是我就想到了为何不用手机将内容拍下来,然后直接生成word文件。本菜鸟接下来就教大家如何用百度提供的图像识别接口来完成图像文字的提取。 文字识别OCR:https://ai.baidu.com/ai-doc/OCR/Ek3h7yeiq 首先,需要两个模块:baidu-aip、python-docx。如果没有,可以直接用pip命令安装。 pip install baidu-aip pip

cainiao_py的博客 5756

Python提取Word中的图片

Python提取PDF中的图片(需要的自取): Python提取PDF中的图片 最近项目需要把word、PDF中的图片专门提取出来保存到另外的文件夹,最终成功实现; 最近项目需要把word、PDF中的图片专门提取出来保存到另外的文件夹,最终成功实现; 最近项目需要把word、PDF中的图片专门提取出来保存到另外的文件夹,最终成功实现; 重要的事情说三遍,详细步骤记录如下: 目录 ............

地理信息系统、摄影测量与遥感、人工智能 3万+

python中利用docx库创建word文档

python中docx库的使用一 创建word文档,并添其中插入文字及图片 docx库,可以用来创建docx文档,包含段落、分页符、表格、图片、标题、样式等几乎所有的word文档中能常用的功能都包含了,这个包的主要功能便是用来创建文档,相对来说用来修改功能不是很强大。 首先检查一下我们的的python中是否有docx这个库,如果没有我们就需要安装一下。 用代码创建一个简单的word文档,并在文档中...

qq_43068508的博客 3259

【Python】导出docx格式Word文档中的文本、图片和附件等

使用Python批量提取Word文档中的图片和插入的附件,给出代码,更给出代码如何写出的过程。

有知识,世界会更大 8685

【数据挖掘】docx2python完全指南:轻松提取Word文档内容与结构的Python利器

完整提取:能够提取文档中的文本、表格、图片和其他媒体元素保留结构:维持原始文档的层次结构,包括段落、表格层次图片提取:自动提取并保存所有嵌入图片简单直观:提供直观的数据结构表示文档内容无外部依赖:不依赖Microsoft Word或其他外部软件跨平台兼容:适用于Windows、MacOS和Linux系统"""从Word文档生成摘要"""# 提取文档内容# 分割句子# 预处理数据# 计算词频# 计算句子得分score = 0# 选择得分最高的句子。

熵数实验室 2616

Python python-docx库读写word文档

文章目录1.python-docx官方文档2.安装3.使用3.1 打开文档3.2 修改文档中现有的表格3.3 添加文档3.3.1 添加段落3.3.2 添加表格3.3.3 添加图片`最终效果如下:`附:获取桌面路径方法 1.python-docx官方文档 https://python-docx.readthedocs.io/en/latest/index.html 2.安装 pip install ...

超级大洋葱的博客 7662

python中利用python-docx批量提取docx中的图片

由于工作中需要从大量docx文档中提出图片,于是到网上搜索,找了一大堆都是分析xml文件并提取的,太过于复杂,实际上有更简单的方法,只是python-docx并未开发这个功能,但通过debug方式还是能找到资源信息,直接进行提取另存就好了。 本文为原创,如需转载请注明出处。 for file in os.listdir(filePath): try: ...

wudechun的博客 5348

TCGA之GDC-client工具下载安装与使用

文章主要是对GDC-client工具下载TCGA数据库数据整个过程的一个记录 1.下载GDC-client工具 GDC-client工具网址:GDC Data Transfer Tool | NCI Genomic Data Commons (cancer.gov) 我这里下的是上图中红圈中的版本, 2.解压安装 从网上了解的是不能解压到带中文的路径里,解压后是一个.exe文件,为了能直接在cmd命令行下使用,将其加入系统环境: 点击新建之后,输入将文件解压到的路径,然后...

better_strong的博客 1万+

python之python-docx:操作 office word 文档

在Python中,有一个名为的库,它提供了丰富的功能,可以方便地创建、修改和读取Word文档。本文将价绍安装python-docx、创建和保存Word文档、修改现有文档、操作段落和文本、操作表格、操作图片、其他常用操作

naer_chongya的博客 8505

【同花顺公式编辑教程】第3章 获取数据

学习同花顺公式编辑器,其提供的数据有量价数据以及财务数据。在本章中,我们讲解了编辑器执行代码的原理,并给出了可调用数据的汇总表。

LiaoYi2016218的博客 1万+

单细胞测序数据读取实战指南:从入门到精通

本文提供了单细胞测序数据读取的实战指南,涵盖从标准10X Genomics格式到通用表达矩阵及RDS文件的读取方法。文章重点解析了数据读取的核心步骤、常见问题解决方案及进阶技巧,旨在帮助用户夯实数据分析基础,确保后续分析流程的准确性。

weixin_29095587的博客 460

python之python-docx编辑和读取word文档

python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明。 python-docx官方文档地址 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx import Document 2 from docx.shared import Inches 3 4 document = Document() 5 6...

菲宇运维 3万+

基于Python的网络拓扑图绘制

最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。(1)根据邻接矩阵画出网络拓扑图(2)画出网络拓扑图,并对节点和链路进行表示,包括对节点和链路的标号,颜色区分,以及尺寸区分。

m0_53961910的博客 7093

python-docx处理word文档

更多内容,请访问我的 个人博客。 前言 全网找了一番,用python创建和更新word(.docx)文档,还是 python-docx 包比较好用。 依赖 Python 2.6, 2.7, 3.3, or 3.4 lxml >= 2.3.2 安装模块 由于 python-docx 已经提交给 PyPI 仓库,所以可以使用 pip 安装,如下:pip install python-do...

潘高的小站 6155

新手如何结合pbootCMS和宝塔面板快速构建网站

摘要: 新手可通过pbootCMS(轻量CMS)和宝塔面板(可视化工具)快速搭建网站,无需命令行。步骤包括:1) 准备服务器(Linux/CentOS7.x)和域名;2) 安装宝塔面板并配置LNMP环境(PHP7.4+MySQL5.7);3) 创建网站目录,上传并解压pbootCMS源码,设置文件权限;4) 运行安装向导,填写数据库信息和管理员账号;5) 测试前台/后台功能,优化性能并绑定域名。全程约30-60分钟,宝塔简化运维,pbootCMS便于内容管理,适合零基础用户。注意定期更新和备份以保障安全。

qinzhenyan的博客 1642

手把手教你用USBasp给Arduino UNO烧写程序(ICSP模式,含BootLoader选择指南)

本文详细介绍了如何使用USBasp编程器通过ICSP模式为Arduino UNO烧写程序,包括硬件连接、软件配置、Hex文件处理和BootLoader选择指南。内容涵盖从新手入门到高级优化的全流程,帮助开发者高效完成烧写任务,特别适合需要修复BootLoader或进行量产烧写的用户。

weixin_33958381的博客 364

使用python提取所有word文件中的所有图片

目录前言代码GIF示例 前言 办公中,偶尔会碰到一种情况,需要提取word文档中的图片,决定写这样一款工具自动提取图片。 关于脚本的使用: 情景1:如果你拿到的是一个文件夹,所有的word文件都在这个文件夹的子目录下,深度为1层,你可以直接使用该脚本 情景2:如果你拿到的是一个文件夹,打开之后,里面杂乱无章的充斥着各种文件,你也不确定word文档都在哪,那么你需要使用Everything来手动提取出所有的word文档,虽然我也可以让脚本实现这个功能,但是使用脚本需要考虑到有可能存在同名文件,再处理起来代码量

LainWith的博客 3803

JavaScript性能优化:全链路性能优化策略

JavaScript性能优化是提升Web应用质量的核心要素,直接影响用户体验与业务成果。研究表明,页面加载延迟1秒可能导致转化率下降7%。高效的JavaScript执行能减少主线程阻塞,避免动画卡顿或操作延迟,尤其在移动端低性能设备上更为关键。优化内存管理与减少冗余计算可降低浏览器资源消耗,防止因内存泄漏导致的崩溃,提升应用稳定性。在竞争激烈的互联网环境中,性能优势已成为产品差异化的关键因素,直接影响用户留存与商业价值。因此,性能优化应作为开发全周期的核心实践,而非事后补救措施。

weixin_49707375的博客 1272

Python提取word文档中的图片,识别图片文字之后再转存为word文档

#!/usr/bin/env python # coding: utf-8 import zipfile #压缩包 import os #文件库 import shutil import pytesseract import PIL from PIL import Image from docx import Document ##需要安装第三方库,python-docx from docx.shared import Pt #用于设置字体样式 from docx.oxml.ns import qn # 中

qq_40062513的博客 2067

2026华为OD机考双机位C卷++ 双机位B卷 + 双机位A卷 + 2025C/B/A卷+ 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

2025华为OD机考双机位C卷++ 双机位B卷 + 双机位A卷 + 2025C/B/A卷+ 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

算法大师! 5万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Python3-word文档操作(九):给word文档添加/删除一张图片-利用docx库

docx库不仅可以提取word文档中的图片,也可以给文档添加图片。本篇介绍如何添加一张图片到word文档中。

记录和分享程序人生的点点滴滴 5831

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Python3-word文档操作(七):提取word文档中的图片方式一-利用word文档的压缩文件属性
下一篇: Python3-word文档操作(九):给word文档添加/删除一张图片-利用docx库
liranke
博客等级 码龄20年 4939粉丝 594原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值