〖Python自动化办公篇⑥〗- word文件自动化 – word操作与读取word文件

万叶集
🎉 隐约雷鸣,阴霾天空。 🎉
🎉 但盼风雨来,能留你在此。 🎉


前言
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS – 全栈 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁) 学习路线指引 知识定位
🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 更新中
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 – Charles 软件测试数据包抓包分析神器
测试神器 – Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 – Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录

  • 🐳 利用 python 批量读取文件
  • 🐬 word利器之python-docx
  • 🐬 python-docx 安装
  • 🐬 python-docx 之 Document
  • 🐳 python-docx 之段落内容读取
  • 🐳 python-docx 之表格内容读取
  • 前面几个章节我们学习了对于普通文件的操作,比如说文件的创建、复制粘贴、裁剪粘贴、文件名的重命名、删除等等。另外还学习了一些基本练习,如何查找文件、如何按照内容查找文件等等。

    在本章节及后续,将开始学习一些特殊文件的自动化相关操作。如 word、excel、PPT,虽然说是特殊文件,其实也是实际工作中我们经常会用到的文件类型。

    接下来我们就进入到 word 文件自动化操作的学习内容。

    该章节涉及的新模块

  • python-docx
  • pdfkit
  • pydocx
  • 🐳 利用 python 批量读取文件

    🐬 word利器之python-docx

    python-docx 是用于创建可修改 微软 Word 的一个 python 库,提供全套的 Word 操作,是最常用的 Word 工具。

    使用前,先了解几个概念:

  • Document:是一个 Word 文档 对象,不同于 VBA 中 Worksheet 的概念,Document 是独立的,打开不同的 Word 文档,就会有不同的 Document 对象,相互之间没有影响
  • Paragraph:是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段
  • Run 表示一个节段,每个段落由多个 节段 组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个 段落 对象有个 Run 列表。
  • 例如下图的 word 文档示意图:



    word 文档结构划分如下:



    🐬 python-docx 安装

    安装:

    pip install python-docx 如果安装速度太慢的话,可以换一个国内的源地址(如下)

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx


    导入:

    import docx

    from docx import …

    🐬 python-docx 之 Document

    导入包与模块:

    from docx import Document


    使用方法:

    Document(word文件地址)


    返回值:

    word文件对象

    🐳 python-docx 之段落内容读取

    实际上要想读取一个 word 文档,主要就是读取它的段落以及它的表格。无论是段落还是表格,它的内部都是字符串,我们的目的就是读取这些字符串的内容。

    先看一下段落内容的读取方式:

    来源:

    document_obj.paragraphs 通过 document 对象的 paragraphs 函数返回一个段落的列表;如果 word 文件存在多个段落,就会有多个段落对象。


    使用方法:

    通过循环获取每个段落对象,并调用 text

    演示案例脚本如下:

    # coding:utf-8
    
    
    import os
    from docx import Document
    
    
    path = os.path.join(os.getcwd(), 'test_file/文本.docx')
    print("\'文本.docx\' 的路径为:", path)     # 调试路径
    
    doc = Document(path)
    
    for p in doc.paragraphs:
        print(p.text)
    

    运行结果如下:(PS:文本只是演示,本人非培训机构的!



    🐳 python-docx 之表格内容读取

    接下来我们看一下如何读取 word 文件中的表格内容:

    来源:

    document_obj.tables 通过 document 对象的 paragraphs 函数返回一个表格的列表;里面是一个一个的表格的对象。


    使用方法:

    同样通过循环,获取行与列的内容


    返回值:

    每个表格字段(字符串)

    演示案例代码如下:

    # coding:utf-8
    
    
    import os
    from docx import Document
    
    
    path = os.path.join(os.getcwd(), 'test_file/文本.docx')
    print("\'文本.docx\' 的路径为:", path)     # 调试路径
    
    doc = Document(path)
    
    # for p in doc.paragraphs:
    #     print(p.text)
    
    for t in doc.tables:            # for 循环获取表格对象
        for row in t.rows:          # 获取每一行
            row_str = []
            for cell in row.cells:    # 获取每一行单独的小表格,然后将其内容拼接起来;拼接完成之后再第二个for循环中打印出来
                row_str.append(cell.text)
            print(row_str)
            
    # 也可以通过 "columns" 获取表格中的列的内容,可以自己尝试一下
    

    运行结果如下:



    来源:全栈哈士奇

    物联沃分享整理
    物联沃-IOTWORD物联网 » 〖Python自动化办公篇⑥〗- word文件自动化 – word操作与读取word文件

    发表评论