安装

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四级结构

Word读取

1.打开Wordfrom docx import Document

path = ...

wordfile = Document(path)

2. 获取段落

一个word文件由一个或者多个paragraph段落组成paragraphs = wordfile.paragraphs

print(paragraphs)

3. 获取段落文本内容

用.text获取文本for paragraph in wordfile.paragraphs:

print(paragraph.text)

4. 获取文字块文本内容

一个paragraph段落由一个或者多个run文字块组成for paragraph in wordfile.paragraphs:

for run in paragraph.runs:

print(run.text)

5. 遍历表格

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

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

1. 创建Word

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

wordfile = Document()

2. 保存文件

对文档的修改和创建都切记保存wordfile.save(...)

... 放需要保存的路径

3. 添加标题

wordfile.add_heading(…, level=…)

4. 添加段落

wordfile.add_paragraph(...)wordfile = Document()

wordfile.add_heading('一级标题', level=1)

wordfile.add_paragraph('新的段落')

5. 添加文字块

wordfile.add_run(...)

6. 添加分页

wordfile.add_page_break(...)

7. 添加图片

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

设置样式

1. 文字字体设置

2.文字其他样式设置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) # 字体颜色

3. 段落样式设置

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

小结

以上就是如何用Python中的docx模块实现Word中的常用操作,只要明白什么类型的操作可以用Python执行,并能在之后遇到繁琐的任务时想到使用Python即可

python docx runs_别再问我Python怎么操作Word了!相关推荐

  1. python docx run断开_别再问我python怎么操作Word了!

    原标题:别再问我python怎么操作Word了! 作者:陈熹 来源:早起Python 在之前的自动化系列文章中,我们分别讲解过python操作Excel利器openpyxl,也讲过python操作PD ...

  2. 别再问我Python打包成exe了!(终极版)

    大家好,我是小五 <老板又出难题,气得我写了个自动化软件> 上次这篇文章中,评论区有好几条留言都是关心如何将python脚本打包成10多M的? 那今天小五就给大家全面总结一下:Python ...

  3. python docx 表格复制粘贴_python-docx修改已存在的Word文档的表格的字体格式方法

    搞了好几天的表格字体格式,一直想找一种能直接一次性修改表格所有字体格式的方法(函数),但是无论用什么方法都无法修改表格字体的格式,原因应该是已存在的文档本身就具有某种格式限制,制约着里面表格里面字体格 ...

  4. python 堆_面试再问你什么是堆和栈,你就把这篇文章甩给他

    栈:管程序如何运行的,程序如何执行,如何处理数据.(局部变量其实也是存在栈中的,引用数据类型在栈中存的是地址引用)(栈的空间就不需要那么大了) 堆:管数据存储的.(引用数据类型的存放,所以堆的空间是比 ...

  5. python保存图片到指定路径_别再问我Python怎么操作Word了!

    前言 在之前的自动化系列文章中,我们分别讲解过

  6. python打开word后再关闭再打开出错_别再问我Python怎么操作Word了!

    前言 在之前的自动化系列文章中,我们分别讲解过

  7. python docx库安装_详解python中docx库的安装过程

    python中docx库的简介 python-docx包,这是一个很强大的包,可以用来创建docx文档,包含段落.分页符.表格.图片.标题.样式等几乎所有的word文档中能常用的功能都包含了,这个包的 ...

  8. python docx模块pip安装_pip安装python模块方法

    网上搜索了很多,主流的配置方法分为两种: 摘自 1.http://www.jb51.net/article/83617.htm 安装pip的包并确定pip安装时的镜像源地址,国内常用的地址有: 1&g ...

  9. python等待执行完毕 再继续执行_Python等待操作完成后再继续

    我正在将数据写入CSV文件,然后一旦完成,我将文件复制到另一个目录. 这都是循环,所以当第二次迭代开始时,它会从复制的文件中读取数据. 问题是在第二次迭代开始时文件仍在被复制,这会导致明显的问题. 在 ...

最新文章

  1. javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
  2. BZOJ1977: [BeiJing2010组队]次小生成树 Tree
  3. 打造智慧城市 让市场成为主角
  4. 【杂谈】为什么我们从来不追热点,循序渐进学习它不好吗?
  5. HALCON示例程序crystal.hdev通过局部阈值处理和区域处理提取六角形晶体
  6. 推荐几本编程启蒙书籍
  7. Matlab中出现“无法打开电子表格,MATLAB报告了以下错误;错误:服务器出现意外情况”
  8. thinkphp3.2 无法加载模块
  9. java证书已过期如何继续运行_过期证书上的Java trustmanager行为
  10. 微信公众请求config php,微信公众平台开发之配置与请求,微信公众平台
  11. padavan固件如何设置打印机
  12. 【Mybatis源码解析】Mybatis源码体系结构
  13. 排序算法(2)冒泡排序
  14. 我的保研之路-哈工大计算机,中科院信工所,复旦大数据学院
  15. 安卓:股票筛选及分析系统
  16. Java+spring+springmvc 基于ssm的交通事故档案管理系统#毕业设计
  17. 服务器操作系统 份额,2019年6月全球桌面操作系统市场份额数据:Linux占比1.55%...
  18. 手机总是自动重启怎么处理
  19. 校园人脸识别门禁的实施方案有效隔离闲杂人员
  20. 车联网是什么_车联网有什么用_车联网功能介绍

热门文章

  1. linux之如何快速在文本里面写入内容
  2. 【C语言简单说】六:取模运算符以及变量的扩展
  3. android开发板出错,为开发板编译时出错是什么原因
  4. mysql输出代码_mysql常用代码
  5. 直角三角形知道两边求角度_每日一讲:解直角三角形(3.21)
  6. access的ole对象换成mysql_ACCESS的Ole对象读取写入
  7. python 写入excel_一行一行整理EXCEL表太麻烦,试试python脚本,1秒写入数据
  8. android studio button位置_免费的Android开发环境
  9. 有一个会泰勒级数的八岁表妹是怎样一种体验?
  10. 要比惨吗?看看这个女人