1. 读取 docx 所需库

自动生成《背影》word 文档,以及自动生成日期的脚本代码已经完成。

 

本文的主要内容,是自动的读取 word 文档的内容,将 word 中的表格、段落文字,以及图片全部读取出来。

 

这里需要用到的库,是前面用到的 python-docx 库,以及额外的一个 docx2python。

 

安装命令:

pip install python-docx docx2python
2. 段落的输出

安装好之后,先使用 python-docx 库,读取 word 文件的段落内容,如下代码:

from docx import Document

document = Document('背影-read.docx')
for paragraph in document.paragraphs:
print(paragraph.text)

这段代码,就是针对 document 文档的段落进行并输出,就是文档的全部文字内容,没有任何的格式。

3. 表格的输出

然后是表格的输出,如下代码:

tables = document.tables
for table in tables:
rows = table.rows
for i in range(0, len(rows)):
for cell in table.row_cells(i):
print(cell.text, end=' ')
print('\n')

详细的代码介绍:

  • document.tables 是获取文档的全部表格,然后进入第一个 for 循环,逐个表格取出并处理
  • table.rows 是获取行对象,使用len()函数,就可以取到行数
  • 然后循环,从 0 取到最后一行
  • 使用 table.row_cells(i) 获取当前行的所有 cell 单元格,使用 for 循环获取每个 cell
  • 然后输出所有 cell 单元格的文本内容,并且换行是空字符串,这是为了将每行的内容,输出时也是一样
  • 然后在一行输出结束时,加换行,将每行内容都分开

 

以上是表格的代码部分,如下输出结果:

 

 

读取 Word 文档内容_word

 

4. 图片的获取和保存

最后一个是读取图片,由于在命令行中,无法输出图片,所以这里的操作,是将所有的图片保存到word文档旁边,如下代码:

from docx2python import docx2python

document2 = docx2python('背影-read.docx')
for name, imageData in document2.images.items():
with open(name, 'wb') as fp:
fp.write(imageData)

这里使用的是 docx2python 库,这个属于一个 docx 的拓展库。

 

打开文件,读取文档的全部图片名和字节,然后保存即可,如下效果:

 

读取 Word 文档内容_word_02image1.jpg 就是从 docx 中读取出来的图片文件。

背景-read.docx 是目标文档。