【Python基础】python使用python-docx操作word
1、python-docx库介绍
该模块儿可以创建、修改Word(.docx)文件;
此模块儿不属于python标准库,需要单独安装;
python-docx使用官网:python-docx官网
我们在安装此模块儿使用的是pip install python-docx,但是在导入的时候是import docx;
2、Python读取Word文档内容
注意:每进行一个操作,必须保存一下,否则等于白做;
1)word文档结构介绍
2)python-docx提取文字和文字块儿
① python-docx提取文字
有一个这样的docx文件,我们想要提取其中的文字,应该怎么做?代码如下:
from docx import Documentdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
print(doc.paragraphs)
for paragraph in doc.paragraphs:print(paragraph.text)
结果如下:
② python-docx提取文字块儿
from docx import Documentdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
print(doc.paragraphs)
paragraph = doc.paragraphs[0]
runs = paragraph.runs
print(runs)
for run in paragraph.runs:print(run.text)
------------------------------
paragraph = doc.paragraphs[1]
runs = paragraph.runs
print(runs)
for run in paragraph.runs:print(run.text)
结果如下:
3)利用Python向Word文档写入内容
① 添加段落
from docx import Documentdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
# print(doc.add_heading("一级标题", level=1)) 添加一级标题的时候出错,还没有解决!
paragraph1 = doc.add_paragraph("这是一个段落")
paragraph2 = doc.add_paragraph("这是第二个段落")
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
"""
添加段落的时候,赋值给一个变量,方便我们后面进行格式调整;
"""
结果如下:
② 添加文字块儿
from docx import Documentdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
# 这里相当于输入了一个空格,后面等待着文字输入
paragraph3 = doc.add_paragraph()
paragraph3.add_run("我被加粗了文字块儿").bold = True
paragraph3.add_run(",我是普通文字块儿,")
paragraph3.add_run("我是斜体文字块儿").italic = True
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
结果如下:
③ 添加一个分页
from docx import Documentdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
doc.add_page_break()
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
结果如下:
④ 添加图片
from docx import Document
from docx.shared import Cmdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
doc.add_picture(r"G:\6Tipdm\7python办公自动化\concat_word\sun_wu_kong.png",width=Cm(5),height=Cm(5))
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
"""
Cm模块,用于设定图片尺寸大小
"""
结果如下:
⑤ 添加表格
from docx import Documentdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")list1 = [["姓名","性别","家庭地址"],["唐僧","男","湖北省"],["孙悟空","男","北京市"],["猪八戒","男","广东省"],["沙和尚","男","湖南省"]
]
list2 = [["姓名","性别","家庭地址"],["貂蝉","女","河北省"],["杨贵妃","女","贵州省"],["西施","女","山东省"]
]table1 = doc.add_table(rows=5,cols=3)
for row in range(5):cells = table1.rows[row].cellsfor col in range(3):cells[col].text = str(list1[row][col])
doc.add_paragraph("-----------------------------------------------------------")
table2 = doc.add_table(rows=4,cols=3)
for row in range(4):cells = table2.rows[row].cellsfor col in range(3):cells[col].text = str(list2[row][col])doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
结果如下:
⑥ 提取word表格,并保存在excel中(很重要)
from docx import Document
from openpyxl import Workbookdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test2.docx")
t0 = doc.tables[0]workbook = Workbook()
sheet = workbook.activefor i in range(len(t0.rows)):list1 = []for j in range(len(t0.columns)):list1.append(t0.cell(i,j).text)sheet.append(list1)
workbook.save(filename = r"G:\6Tipdm\7python办公自动化\concat_word\来自word中的表.xlsx")
结果如下:
3、利用Python调整Word文档样式
1)修改文字字体样式
from docx import Document
from docx.shared import Pt,RGBColor
from docx.oxml.ns import qndoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test2.docx")
for paragraph in doc.paragraphs:for run in paragraph.runs:run.font.bold = Truerun.font.italic = Truerun.font.underline = Truerun.font.strike = Truerun.font.shadow = Truerun.font.size = Pt(18)run.font.color.rgb = RGBColor(255,255,0)run.font.name = "宋体"# 设置像宋体这样的中文字体,必须添加下面2行代码r = run._element.rPr.rFontsr.set(qn("w:eastAsia"),"宋体")
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\_test1.docx")
结果如下:
2)修改段落样式
① 对齐样式
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPHdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
print(doc.paragraphs[0].text)
doc.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
# 这里设置的是居中对齐
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\对齐样式.docx")
"""
LEFT,CENTER,RIGHT,JUSTIFY,DISTRIBUTE,JUSTIFY_MED,JUSTIFY_HI,JUSTIFY_LOW,THAI_JUSTIFY
"""
结果如下:
② 行间距调整
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPHdoc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
for paragraph in doc.paragraphs:paragraph.paragraph_format.line_spacing = 5.0
doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\行间距.docx")
结果如下:
③ 段前与段后间距
这里提供代码,自行下去检验
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
本站qq群704220115,加入微信群请扫码:
【Python基础】python使用python-docx操作word相关推荐
- python基础知识面试题-python的一些基本概念知识和面试题
对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔.那么你了解过Python编程面试题吗?从Python基础到网页爬虫你是否能全方位Hold住?今天,机器之心为读者们 ...
- python基础教程视频-Python基础视频教程全集
原标题:Python基础视频教程全集 Python编程语言的定位是"优雅"."明确"."简单",所以对于Python初学者来说,学起来没有那 ...
- Python基础教程,Python入门教程
Python 是一门上手简单.功能强大.通用型的脚本编程语言.Python 类库极其丰富,这使得 Python 几乎无所不能,网站开发.软件开发.大数据分析.网络爬虫.机器学习等都不在话下. 这套 P ...
- Python基础 笔记(一) Python的介绍
Python基础 笔记(一) Python的介绍 您好! 欢迎来到木易巷! 接下来,让我们一起来了解Python,走进Python~ 1.编程语言 编程语言(programming language) ...
- Python基础(简明Python教程)
Python基础(简明Python教程) 参考简明Python教程 基本概念 注释符 # 基本数据类型 整数.长整数.浮点数(52.3E-4).复数(-5+4j) 字符串 对象 运算符 与Java基本 ...
- python程序如何执行死刑_「Python基础知识」Python生成器函数
原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...
- python基础知识-python基础知识,python必背内容,一、python的基
python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print("hello,world')print("你好 ...
- 什么是python基础教程-python基础教程之python是什么?概念解析
Python,是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CP ...
- 第一章 第一节:Python基础_认识Python
Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...
- 【Python基础绘图】Python多张png合成gif动图
[Python基础绘图]Python多张png合成gif动图 前段时间准备答辩ppt想展示下逐月的空间变化趋势,故想到了动图的方式,将多张png图片转变为gif动图.下面是代码记录一下. 首先需要准备 ...
最新文章
- JAVA高级特性--自动拆箱-装箱,枚举类型
- 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II
- Django 自定义表名
- mentor公司的PCB设计软件:PADs, Expedition,BoardStation
- docker镜像底层是文件联合系统
- laydate点击输入框闪一下不见了_爱剪辑:如何制作抖音、苹果风格的快闪视频...
- AJAX基础:JavaScript中类的实现
- C++学习笔记(10)运算符重载,友元函数,友元类
- 如何判断你和优秀AI算法工程师之间的差异?
- Java 程序设计基础(第四版)下
- python whl文件下载网址
- 反向代理——Nginx
- Oracle数据库数据同步方法
- xshell上传本地文件命令_linux redhat怎么用xshell上传本地文件
- linux下动态库的符号冲突、隐藏和强制优先使用库内符号
- matlab 线性插值缩放图片,双线性插值实现图像放大(Matlab实现)
- 3D游戏模型师的日常工作内容
- office2007加载缓慢_word2007打开特别慢怎么解决
- STM8 的汇编学习
- 这样处理,Java中的注释代码也会执行