python自动化系列之使用python-docx操作word文档

简介: python自动化系列之使用python-docx操作word文档

日常办公中经常用到word程序,在python中同样有针对word的操作库python-docx;使得python可以自动化操作word文档;

pyhon-docx介绍

python-docx是一个利用python来读写word文件的第三方库。是一个用于创建和更新 Microsoft Word (.docx) 文件的库,提供全套的 Word 操作,是最常用的 Word 工具;

python-docx库只支持docx文档,如果是doc,需要转换文件格式。
文件格式转换可以使用win32com库的saveas方法进行自动化操作;

python-docx是一个开源库,开源代码库地址在这里:github地址

python-docx的简单使用

  • 安装python-docx

安装方式建议使用pip包管理器进行安装,相对来说比较方便;

> pip install python-docx
  • 导入python-docx

在安装时使用的名字是python-docx,但是在导入时是另一个名字docx

> import docx
  • python-docx中的基本概念:

    Document:是一个 Word 文档 对象,打开不同的 Word 文档,就会有不同的 Document 对象,相互之间没有影响

Paragraph:是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段
Run 表示一个节段,每个段落由多个 节段 组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个 段落 对象有个 Run 列表

注意:颜色、字体、粗细、斜体不同,就是不同的文字块。
  • 使用docx写word文档:

1、新建一个空白文档
doc = docx.Document()
2、添加标题
doc.add_heading('这个是标题,级别有level决定',level=2)
3、添加段落
p = doc.add_paragraph('这个是一个段,可长可短')
4、添加文字块:
p.add_run('\n--这个是换行的节段,但是还是一个段落')
5、保存文件
doc.save('H://pytest.docx')

完整代码示例
def create():
    '''创建一个word'''
    doc = docx.Document() #新建一个空白文档
    doc.add_heading('这个是标题,级别有level决定',level=2) #添加标题
    p = doc.add_paragraph('这个是一个段,可长可短')
    p.insert_paragraph_before('在第一段之前插入一个段落')
    p.add_run('\n--这个是换行的节段,但是还是一个段落')
    p.add_run('==粗体文字').bold = True #设置粗体
    p.add_run('--斜体文字').italic = True #设置斜体
    doc.add_page_break()       # 插入空白页 
    np = doc.add_paragraph('新的段落')
    from docx.enum.text import WD_BREAK
    np.runs[-1].add_break(WD_BREAK.PAGE)  # 在段落的最后一个节段后添加分页
    doc.save('H://pytest.docx') #保存
  • 除了常规的文字,还可以添加表格等特殊格式;

image.png

  • 读word文档:

读取文档比较简单,主要是加载文件,获取段落,获取表格等信息
示例代码如下:

def read():
    '''读文档'''
    doc = docx.Document('H://pytest.docx')   # 打开当前路径下的已有文档
    for paragraph in doc.paragraphs:
        print(f'paragraph.text = {paragraph.text}')
        for run in paragraph.runs:
            print(f'\trun.text = {run.text}')

    for table in doc.tables:
        print(f"表格======{table}")
        for i in range(len(table.rows)):
            for j in range(len(table.columns)):
                print (f"{i}行{j}列:数据:{table.cell(i,j).text}")
相关文章
|
1月前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
64 14
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
112 10
|
9天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
107 60
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
1天前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
22 3
|
21天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
54 7
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
53 7
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4
|
1月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
开发者 Python
使用Python实现自动化邮件通知:当长时程序运行结束时
本文介绍了如何使用Python实现自动化邮件通知功能,当长时间运行的程序完成后自动发送邮件通知。主要内容包括:项目背景、设置SMTP服务、编写邮件发送函数、连接SMTP服务器、发送邮件及异常处理等步骤。通过这些步骤,可以有效提高工作效率,避免长时间等待程序结果。
73 9