在之前的自动化系列文章中,我们分别讲解过?Python操作Excel利器openpyxl,也讲过?Python操作PDF的几种方式,今天我们将通过代码讲解Python操作Word文档docx
的常用方法。
docx
是一个非标准库,需要在命令行(终端)中使用pip即可安装
pip install python-docx
一定要注意,安装的时候是python-docx
而实际调用时均为docx
!
Word中一般可以结构化成三个部分:
Document
Paragraph
Run
也就是Document - Paragraph - Run三级结构,这是最普遍的情况。其中文字块Run
最难理解,并不能完成按照图中所示,两个符号之间的短句是文字块。
通常情况下可以这么理解,但假如这个短句子中有多种不同的 样式,则会被划分成多个文字块,以图中的第一个黄圈为例,如果给这个短句添加一些细节?
此时就有4个文字块,同时有时候一个Word文档中是存在表格的,这时就会新的文档结构产生
这时的结构非常类似Excel,可以看成Document - Table - Row/Column - Cell
四级结构
from docx import Document
path = ...
wordfile = Document(path)
一个word文件由一个或者多个paragraph
段落组成
paragraphs = wordfile.paragraphs
print(paragraphs)
用.text
获取文本
for paragraph in wordfile.paragraphs:
print(paragraph.text)
一个paragraph段落由一个或者多个run文字块组成
for paragraph in wordfile.paragraphs:
for run in paragraph.runs:
print(run.text)
上面的操作完成的经典三级结构的遍历,遍历表格非常类似
# 按行遍历
for table in wordfile.tables:
for row in table.rows:
for cell in row.cells:
print(cell.text)
# 按列遍历
for table in wordfile.tables:
for column in table.columns:
for cell in column.cells:
print(cell.text)
只要不指定路径,就默认为创建新Word文件
from docx import Document
wordfile = Document()
对文档的修改和创建都切记保存
wordfile.save(...)
... 放需要保存的路径
wordfile.add_heading(…, level=…)
wordfile.add_paragraph(...)
wordfile = Document()
wordfile.add_heading('一级标题', level=1)
wordfile.add_paragraph('新的段落')
wordfile.add_run(...)
wordfile.add_page_break(...)
wordfile.add_picture(..., width=…, height=…)
from docx import Document
from docx.shared import RGBColor, Pt
wordfile = Document(file)
for paragraph in wordfile.paragraphs:
for run in paragraph.runs:
run.font.bold = True # 加粗
run.font.italic = True # 斜体
run.font.underline = True # 下划线
run.font.strike = True # 删除线
run.font.shadow = True # 阴影
run.font.size = Pt(20) # 字号
run.font.color.rgb = RGBColor(255, 0, 0) # 字体颜色
默认对齐方式是左对齐,可以自行修改
以上就是如何用Python中的docx模块实现Word中的常用操作,只要明白什么类型的操作可以用Python执行,并能在之后遇到繁琐的任务时想到使用Python即可,以下是几个利用该模块实现办公自动化的案例,希望能够对你有所帮助:
本文为公众号早起Python专栏作者陈熹原创,转载请后台联系,未经授权的任何形式转载均视为侵权!
-END-