Python技巧篇:如何巧妙运用Python处理Word文档

130 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第N天,点击查看活动详情 前言 大家好,我是辣条 之前有给大家分享了一篇:《Python实例篇:自动操作Excel文件(既简单又特别实用)》

根据很多粉丝反馈是有用处的,于是乎应广大群众号召,今天给大家再来一波Python操作Word文档,我可是长期更新分享的,订阅一下我的博客不会错的 ​

大家平时在工作与学习中都会操作到Word文件格式,特别是很多数据的时候,靠人力去识别操作非常容易出错。今天就带大家用python来处理Word文件。

目录 前言 工具 生成Word案例 读取操作word文档 总结: 工具 python3.7 Pycharm Excel python-docx

生成Word案例 ​ 创建一个demo.doc文档,代码如下:

from docx import Document from docx.shared import Cm,Pt from docx.document import Document as Doc

#构建doc对象 document = Document()

#操作文档标题 document.add_heading('这是python写的!',0)

#操作段落文本 p = document.add_paragraph('我喜欢python,因为python可以做许多事情...') #段落添加内容 run = p.add_run('大家也可以来学习!') #对run内容加粗 run.bold = True #设置run字体 run.font.size = Pt(18)

#标题级别设置 document.add_heading('我是一级标题',level=1)

#操作图片(图片所在路径) document.add_picture('刘亦菲.png', width=Cm(5.2))

添加有序列表

document.add_paragraph( '我是有序列表1', style='List Number' ) document.add_paragraph( '我是有序列表1', style='List Number' )

添加无序列表

document.add_paragraph( '我是无序列表1', style='List Bullet' ) document.add_paragraph( '我是无序列表2', style='List Bullet' )

设置表格内容

records = ( ('孙悟空', '男', '1111-1-1'), ('白骨精', '女', '2222-2-2') )

添加表格,rows设置行 cols设置列

table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells #设置列名 hdr_cells[0].text = '姓名' hdr_cells[1].text = '性别' hdr_cells[2].text = '出生日期'

操作写入行

for name, sex, birthday in records: row_cells = table.add_row().cells row_cells[0].text = name row_cells[1].text = sex row_cells[2].text = birthday

#保存doc文档 document.save('demo.docx')

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 ​ 效果如下:

更多属性设置可以参考官方文档:python-docx.readthedocs.io/en/latest/i…

读取操作word文档 ​ 现有文档如下:

​ 读取代码:

from docx import Document from docx.document import Document as Doc

#获取文档路径,循环读取内容 doc = Document('离职证明.docx') # type: Doc for no, p in enumerate(doc.paragraphs): print(no, p.text) 1 2 3 4 5 6 7 ​ 效果如下:

​ 如果需要批量操作,则可以使用字典形式组织数据类型,比如name,start_time,end_time,job等,再使用循环写入文件即可批量生成该类文档。

总结: ​ 当需要批量操作文档时候,可以使用python-docx库来操作,可以较大提升工作效率。如果需要更多属性操作,请参考上面官方文档。