C语言python 解析docx文档的不二法门,以及使用Python从docx文档提取插入的文件对象和图片

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

脚来拘禁下怎样剖析docx文档:文档格式如下

C语言 1

生3个组成部分组成 1 正文:text文档 2 一个报表。 3一个插的文书对象。4
一个图形 这4独片是咱当docx文档中极其常见的几栽格式。解析代码如下

import docx

def docx_try():

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

    for p in doc.paragraphs:

        print p.text

    for t in doc.tables:

        for r in t.rows:

            for c in r.cells:

                print c.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 解压文件

解压之后得到如下几单公文

C语言 2

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

C语言 3

内部embeddings文件中即便是我们插入的公文对象text.txt. 是一个bin文件

C语言 4

C语言,Media文件中就是储存的图:

C语言 5

我们通过手动的办法以插入的文书和图片解析出,那么通过代码也是均等可分析的。代码如下。

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

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

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

for file in f.namelist():

    f.extract(file)

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

for f in file:

    print f


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