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}")
相关文章
|
12天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
49 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
8天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
28 2
|
9天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
24 3
|
8天前
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
22 1
|
15天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
14天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
1月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
65 4
|
1月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
52 4
|
7天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
16天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
42 4