别再问我Python怎么操作Word了

开发 前端
在之前的自动化系列文章中,我们分别讲解过python操作Excel利器openpyxl,也讲过python操作PDF的几种方式,今天我们将通过代码讲解Python操作Word文档docx的常用方法。

  在之前的自动化系列文章中,我们分别讲解过python操作Excel利器openpyxl,也讲过python操作PDF的几种方式,今天我们将通过代码讲解Python操作Word文档docx的常用方法。

安装

docx是一个非标准库,需要在命令行(终端)中使用pip即可安装

  1. pip install python-docx 

一定要注意,安装的时候是python-docx而实际调用时均为docx!

前置知识

别再问我python怎么操作Word了

Word中一般可以结构化成三个部分:

  • 文档Document
  • 段落Paragraph
  • 文字块Run

也就是Document - Paragraph - Run三级结构,这是最普遍的情况。其中文字块Run最难理解,并不能完成按照图中所示,两个符号之间的短句是文字块。

通常情况下可以这么理解,但假如这个短句子中有多种不同的 样式,则会被划分成多个文字块,以图中的第一个黄圈为例,如果给这个短句添加一些细节

别再问我python怎么操作Word了

此时就有4个文字块,同时有时候一个Word文档中是存在表格的,这时就会新的文档结构产生

别再问我python怎么操作Word了

这时的结构非常类似Excel,可以看成Document - Table - Row/Column - Cell四级结构

Word读取

1.打开Word

  1. from docx import Document 
  2. path = ...wordfile = Document(path) 

2. 获取段落

一个word文件由一个或者多个paragraph段落组成

  1. paragraphs = wordfile.paragraphs  
  2. print(paragraphs) 

3. 获取段落文本内容

用.text获取文本

  1. for paragraph in wordfile.paragraphs:  
  2.     print(paragraph.text) 

4. 获取文字块文本内容

一个paragraph段落由一个或者多个run文字块组成

  1. for paragraph in wordfile.paragraphs:  
  2.     for run in paragraph.runs:  
  3.         print(run.text) 

5. 遍历表格

上面的操作完成的经典三级结构的遍历,遍历表格非常类似

  1. # 按行遍历 
  2. for table in wordfile.tables: 
  3.     for row in table.rows: 
  4.         for cell in row.cells: 
  5.             print(cell.text) 
  6.        # 按列遍历     for table in wordfile.tables: 
  7.     for column in table.columns: 
  8.         for cell in column.cells: 
  9.             print(cell.text) 

写入Word

1. 创建Word

只要不指定路径,就默认为创建新Word文件

  1. from docx import Document 
  2. wordfile = Document()  

2. 保存文件

对文档的修改和创建都切记保存

  1. wordfile.save(...) 
  2. ... 放需要保存的路径 

3. 添加标题

wordfile.add_heading(…, level=…)

别再问我python怎么操作Word了

4. 添加段落

wordfile.add_paragraph(...)

  1. wordfile = Document()  
  2. wordfile.add_heading('一级标题', level=1)  
  3. wordfile.add_paragraph('新的段落'

5. 添加文字块

wordfile.add_run(...)

别再问我python怎么操作Word了

6. 添加分页

wordfile.add_page_break(...)

别再问我python怎么操作Word了

7. 添加图片

wordfile.add_picture(..., width=…, height=…)

别再问我python怎么操作Word了

设置样式

1. 文字字体设置

别再问我python怎么操作Word了

2.文字其他样式设置

  1. from docx import Document 
  2. from docx.shared import RGBColor, Pt 
  3. wordfile = Document(file)for paragraph in wordfile.paragraphs: 
  4.     for run in paragraph.runs: 
  5.                 run.font.bold = True  # 加粗  
  6.         run.font.italic = True # 斜体  
  7.         run.font.underline = True # 下划线  
  8.         run.font.strike = True # 删除线  
  9.         run.font.shadow = True # 阴影  
  10.         run.font.size = Pt(20) # 字号  
  11.         run.font.color.rgb = RGBColor(25500) # 字体颜色 

3. 段落样式设置

默认对齐方式是左对齐,可以自行修改

别再问我python怎么操作Word了

小结

以上就是如何用Python中的docx模块实现Word中的常用操作,只要明白什么类型的操作可以用Python执行,并能在之后遇到繁琐的任务时想到使用Python即可,以下是几个利用该模块实现办公自动化的案例,希望能够对你有所帮助。

 

责任编辑:张燕妮 来源: 今日头条
相关推荐

2020-12-11 09:24:19

Elasticsear存储数据

2018-09-28 05:25:53

TopK算法代码

2018-10-28 22:37:00

计数排序排序面试

2018-11-01 13:49:23

桶排序排序面试

2020-04-22 11:19:07

贪心算法动态规划

2021-01-22 10:09:23

简历求职者面试

2020-04-16 08:22:11

HTTPS加解密协议

2015-02-13 10:42:31

前端工具Dreamweaver

2020-03-30 17:20:54

B+树SQL索引

2019-12-17 09:29:02

数据库架构分库分表

2018-11-06 11:40:19

时间复杂度面试算法

2020-09-02 08:04:59

多线程互联网高并发

2019-04-16 13:30:05

表达式求值数据结构算法

2019-07-10 10:06:24

面试官三次握手四次挥手

2019-01-08 15:11:50

最大值最小值算法

2020-08-26 08:18:39

数据索引查询

2020-11-02 11:21:35

Python编辑器代码

2015-09-14 11:06:53

PYTHON运维

2022-03-14 10:14:43

底层系统Nacos

2019-07-08 10:00:52

Java内存模型并发
点赞
收藏

51CTO技术栈公众号