首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以

下面来看下如何解析docx文档:文档格式如下

有3个部分组成 1 正文:text文档 2 一个表格。 3一个插入的文件对象。4 一个图片 这4个部分是我们在docx文档中最常见的几种格式。解析代码如下

importdocx

defdocx_try():

doc=docx.Document(r‘E:\py_prj\test.docx‘)

forp indoc.paragraphs:

printp.text

fort indoc.tables:

forr int.rows:

forc inr.cells:

printc.text

E:\python2.7.11\python.exe E:/py_prj/test3.py

Test文档

名称

作用

Python

解析数据

C语言

调用底层接口

HTML

网页数据

首先是用docx.Document打开对应的文件目录。docx文件的结构比较复杂,分为三层,1、Docment对象表示整个文档;2、Docment包含了Paragraph对象的列表,Paragraph对象用来表示文档中的段落;3、一个Paragraph对象包含Run对象的列表。 因此p.text会打印出整个的文本文档。而用doc.tables来遍历所有的表格。并且对每个表格通过遍历行,列的方式来得到所有的内容。

但是在运行结果中并没有找到我们插入的文件对象和图片,text.txt文档。这部分该如何解析呢。首先我们需要先来认识下docx文档的格式组成:

docx是Microsoft Office2007之后版本使用的,用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。

docx格式的文件本质上是一个ZIP文件。将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。事实上,Word2007的基本文件就是ZIP格式的,他可以算作是docx文件的容器。

docx 格式文件的主要内容是保存为XML格式的,但文件并非直接保存于磁盘。它是保存在一个ZIP文件中,然后取扩展名为docx。将.docx 格式的文件后缀改为ZIP后解压, 可以看到解压出来的文件夹中有word这样一个文件夹,它包含了Word文档的大部分内容。而其中的document.xml文件则包含了文档的主要文本内容

从上面的文档我们可以了解到docx文档实际上是由XML文档打包组成的。那么我们要得到其中所有的部分,可以用ZIP解压的方式来得到所有的部件。我们先试下看是否可以

1 将docx文档改成ZIP的后缀

2 解压文件

解压之后得到如下几个文件

点开word文件夹:有如下的文件夹。document.xml就是描述文本对象的文件

其中embeddings文件中就是我们插入的文本对象text.txt. 是一个bin文件

Media文件中就是存储的图片:

我们通过手动的方式将插入的文本以及图片解析出来,那么通过代码也是同样可以解析的。代码如下。

os.chdir(r‘E:\py_prj‘)  #首先改变目录到文件的目录

os.rename(‘test.docx‘,‘test.ZIP‘)  # 重命名为zip文件

f=zipfile.ZipFile(‘test.zip‘,‘r‘)  #进行解压

forfile inf.namelist():

f.extract(file)

file=open(r‘E:\py_prj\word\embeddings\oleObject1.bin‘,‘rb‘).read() #进入文件路径,读取二进制文件。

forf infile:

printf

通过上面的方式,就可以将docx中插入的文件以及图片全部解析出来。具体docx的写的方式可以参考官方文档的介绍

原文:http://www.cnblogs.com/zhanghongfeng/p/7043412.html

python docx 提取图片_python 解析docx文档的方法,以及提取插入的文本对象和图片...相关推荐

  1. 怎么把jpg转换html,一种将图片转成HTML文档的方法与流程

    本发明涉及网页开发技术领域,特别是一种将图片转成HTML文档的方法. 背景技术: 网页设计/美工人员通常将一个网页设计导出成图片的形式:网页前端人员负责将图片转成前端HTML供后端人员开发功能:前端人 ...

  2. python读取docx中表格 图片_python 解析docx文档的方法,以及提取插入的文本对象和图片...

    首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...

  3. python怎么获取word文档的章节_python读取word文档的方法

    本文实例讲述了python读取word文档的方法.分享给大家供大家参考.具体如下: 首先下载安装win32com from win32com import client as wc word = wc ...

  4. python统计word词频_python统计word文档中的词频

    如何将统计word文档中的词频呢?先用docx模块将word文档转变成txt格式,然后使用jieba模块进行分词,并统计词频.是不是很简单- #2020年3月10日 #Elizabeth from d ...

  5. python套用word模板_Python之word文档模板套用 - 真正的模板格式套用

    1 ''' 2 #word模板套用2:套用模板3 ''' 4 5 #导入所需库 6 from docx importDocument7 ''' 8 #另存word文档后格式丢失的问题要导入库设定wor ...

  6. python的txt导入数据库_python将txt文档每行内容循环插入数据库的方法

    如下所示: import pymysql import time import re def get_raw_label(rece): re1 = r'"([\s\S]*?)": ...

  7. java word添加图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

  8. 大杂烩 -- 四种生成和解析XML文档的方法详解

    基础大杂烩 -- 目录 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J DOM:在现在的Java JDK里都自带了,在xml-apis.jar包 ...

  9. 文字图片转换成word文档的方法?

    在很多情况下,我们都想把图片上的文字转成word文档文字,但是由于没有好的方法,能不转换的就不转换,比如说图片上的文字比较少,通常的做法就是手动输入到word文档中,要是图片上的是文章,在没有必要的情 ...

  10. 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

最新文章

  1. ode matlab传递变量,一个时变ode求解例子——以及如何向myode传递附加参数
  2. Android-- FragmentStatePagerAdapter分页
  3. [云炬创业基础笔记]第四章测试21
  4. bzoj 1911: [Apio2010]特别行动队 2011-12-26
  5. Java学习之数据类型的转换
  6. 献给初学者,[winform]中如何设计高效全局的快捷键?[ShortcutKeys]
  7. vscode 头文件包含问题_VScode编译C++ 头文件显示not found的问题
  8. win10强制关闭飞行模式_电脑飞行模式灰色关不掉怎么办
  9. linux搭建服务器有什么用处,Linux配置dns服务器作用是什么?
  10. html中如何出现三重阴影,探索 CSS3 中的 box-shadow 属性
  11. 失眠就吃安眠药真的好吗?好心情送你沾枕到天亮的诀窍
  12. VUE读取Vcard文件,并获取/筛选想要的内容
  13. 计算机Web书籍推荐
  14. picker多选 vant_浅谈vant组件Picker 选择器选单选问题
  15. 北大暑期学校学习总结
  16. Pyside2安装与基础操作
  17. graphql 嵌套查询_了解GraphQL中的查询
  18. 【system】利用Diskpart命令(cmd)解决装机分区格式不对,增大C盘空间问题
  19. python从入门到实践:数据类型、文件处理
  20. 【第三趴】uni-app页面搭建与路由配置(了解工程目录结构、学会搭建页面、配置路由并成功运行)

热门文章

  1. IT男不得不看的影视剧---《数字追凶》
  2. 指定网络名不可用——终于解决啦!
  3. 微信公众号采集之免费采集公众号爆文工具
  4. 计算机科学本质源自于数学思维,计算思维的特点、特征:形式化、程序化、机械化...
  5. fid fopen MATLAB
  6. 系统架构师(十七)系统可靠性分析与设计
  7. c语言汉字utf8,C语言汉字gbk转utf-8
  8. 读博士或者拿到博士学位以后经历和感受是怎样的?
  9. 房价会断崖式下跌吗?
  10. Script Control 组件Win7 X64平台运行问题及示例