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}")
相关文章
|
XML 数据格式 Python
从手动编辑到代码生成:Python 助你高效创建 Word 文档
本文介绍如何用Python实现Word文档自动化生成,结合python-docx、openpyxl和matplotlib库,高效完成报告撰写、数据插入与图表生成,大幅提升办公效率,降低格式错误,实现数据驱动的文档管理。
1496 2
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
711 0
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
523 1
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
1881 61
自动化微信朋友圈:Python脚本实现自动发布动态
|
Python
Python 办公实战:用 python-docx 自动生成 Word 文档
本文详解如何使用 python-docx 库实现 Word 文档自动化生成,涵盖环境搭建、文档创建、格式设置、表格与图片处理、模板填充、批量生成及性能优化等实战技巧,助你高效完成办公场景中的文档自动化任务。
3288 1
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
1082 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
410 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
900 3

推荐镜像

更多