Python提取Word中图片的实现步骤

yizhihongxing

以下是Python提取Word中图片的实现步骤的攻略:

1. 安装Python-docx库

Python-docx是一个用来读取、查询和修改Microsoft Word文档的Python库。它支持docx和doc文件格式,在使用之前先安装该库。

pip install python-docx

2. 读取Word文档

使用Python-docx库,可以轻松地读取Word文档。首先使用以下代码打开文档。

import docx

doc = docx.Document('example.docx')

其中,'example.docx'为需要读取的文档文件名。通过这个对象,我们可以进一步遍历文档内容。

3. 遍历文档内容

遍历文档包括获取将要提取的图片位置和名称。

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        if run.element.xml.startswith('<w:drawing'):
            inline = run.inline_shapes[0]
            if inline.has_image:
                image = inline._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name
                print(image)

在以上代码中,我们首先遍历文档的段落和文本格式信息,通过判断是否含有drawing元素,进一步获取图片信息。如果获得的inline对象有图片,那么我们就可以通过对应的graphicData获取图片名称。

4. 获取图片二进制数据

获取图片名称后,我们进一步提取图片二进制数据。

from docx.shared import Inches

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        if run.element.xml.startswith('<w:drawing'):
            inline = run.inline_shapes[0]
            if inline.has_image:
                image = inline._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name
                image_data = inline._inline.graphic.graphicData.pic.blipFill.blip
                with open(f"{image}.png", 'wb') as f:
                    f.write(image_data)

在以上代码中,我们使用了docx库中的shared.Inches类来控制图片大小。对于每个带有有效图片的文本段落,我们通过图形的名称获取对应的二进制数据,并将其写入到本地文件中,以PNG格式保存。

示例1

如果你需要从letter.docx文档中提取所有图片数据,可以使用以下代码实现。

import docx
from docx.shared import Inches

doc = docx.Document('letter.docx')

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        if run.element.xml.startswith('<w:drawing'):
            inline = run.inline_shapes[0]
            if inline.has_image:
                image = inline._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name
                image_data = inline._inline.graphic.graphicData.pic.blipFill.blip
                with open(f"{image}.png", 'wb') as f:
                    f.write(image_data)

该代码运行后,会在代码所在目录下生成所有图片的PNG格式文件。

示例2

如果你只需要提取某一个特定的Word文档中的图片,可以通过修改文档名称和图片名称信息,使用以下代码解决。

import docx
from docx.shared import Inches

doc = docx.Document('example.docx')

for paragraph in doc.paragraphs:
    for run in paragraph.runs:
        if run.element.xml.startswith('<w:drawing'):
            inline = run.inline_shapes[0]
            if inline.has_image:
                image = inline._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name
                if image == 'image.png':
                    image_data = inline._inline.graphic.graphicData.pic.blipFill.blip
                    with open(f"{image}.png", 'wb') as f:
                        f.write(image_data)

运行该代码后,只有example.docx文档中名为image.png的图片数据会被提取。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python提取Word中图片的实现步骤 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 基于Python实现火车票抢票软件

    基于Python实现火车票抢票软件是指使用Python编写的一些脚本,可以通过12306官网接口,实现火车票的自动查询和抢购。本文将讲解如何基于Python实现火车票抢票软件的完整攻略,包括以下几个方面: 安装Python和相关库 获取12306官网接口 编写Python脚本 实践示例 安装Python和相关库 在使用Python编写火车票抢票软件之前,需要…

    python 2023年5月15日
    00
  • 深入了解Python中pop和remove的使用方法

    当然,我很乐意为您提供“深入了解Python中pop和remove的使用方法”的完整攻略。以下是详细的步骤和示例。 Python中pop和remove的使用方法 在Python中,pop和remove两个常用的列表操作方法。它们都可以用于删除列表中的元素,但是它们的使用和效果略有不同。下我们将详细介绍它们的使用方法和区别。 pop方法 pop方法用于删除列表…

    python 2023年5月13日
    00
  • pandas使用之宽表变窄表的实现

    宽表和窄表在数据处理中是不可避免的概念。在pandas中,可以使用melt方法实现宽表变窄表的转换。接下来,我们将详细讲解如何使用pandas进行宽表变窄表的实现。 一、什么是宽表和窄表 在pandas中,宽表指的是一行中包含许多列,每一列都是一个变量;而窄表指的是多列构成的表,其中一列是变量名,另外几列是对应的值。 举个例子,下面是一组宽表的数据: 姓名 …

    python 2023年6月3日
    00
  • Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)

    进行字符串替换通常需要使用Python文件操作中的两个函数:open()和write()。其中,open()函数用于打开文件,write()函数用于将修改后的内容写入到文件中。 替换并保存到新文件 步骤1:打开原始文件和目标文件 使用open()函数打开原始文件和目标文件,在打开文件时需要指定文件的路径和打开模式: with open(‘source.txt…

    python 2023年6月3日
    00
  • Python 变量类型详解

    Python变量类型详解 在Python中,变量是一种存储数据的容器。Python是一门动态类型语言,意味着变量可以随时绑定到不同的数据类型上。在这篇文档里,我们将详细介绍Python中的各种变量类型。 整型(int) 整型变量用于表示整数,如下所示: num = 10 在上面的例子中,我们创建了一个名为num的整型变量,它的值为10。整型变量可以执行所有算…

    python 2023年5月14日
    00
  • python监控网站运行异常并发送邮件的方法

    Python监控网站运行异常并发送邮件的方法攻略 背景介绍 在网站开发运维过程中,时常需要监控网站的运行状态,并及时发现和解决问题。Python作为一门优秀的编程语言,可以通过编写监控脚本来实现自动监控并及时告警。 解决方案 本文将介绍使用Python监控网站运行异常并发送邮件的方法。 环境准备 在开始编写监控脚本之前,需要安装如下Python模块: req…

    python 2023年5月13日
    00
  • 教你使用Python连接oracle

    教你使用Python连接Oracle数据库 简介 Oracle是目前常用的一款商用关系型数据库,使用Python编程语言连接Oracle是Python开发中常用的操作之一。本文将介绍如何使用Python连接Oracle数据库,包括连接数据库、执行SQL语句、获取查询结果等内容。 环境准备 在开始本文之前,你需要先安装以下环境: Python 3.x cx_O…

    python 2023年5月20日
    00
  • Python如何发布程序的详细教程

    下面我将为您详细讲解一下 Python 如何发布程序的详细教程,包括以下几个步骤: 使用打包工具将 Python 代码打包成安装文件 编写安装脚本 测试安装文件并上传到 PyPI(Python Package Index) 安装并使用发布的 Python 程序 下面我们逐一进行详细阐述。 打包 Python 代码 Python 打包工具是将 Python 代…

    python 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部