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}")
相关文章
|
2月前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
88 14
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
213 61
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
75 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
1月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
70 3
|
2月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
96 7
|
Python
<自动化办公> Python 操控 Word
虽然Word不好用, 但还必须得用它, python-docx是专门用于编辑Word文档的一个工具库, 它有两大用途, 自动化生成word文档 and 自动化修改文档 python word 1.
1800 0
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

推荐镜像

更多