用Python写代码,轻松搞定一天工作量,同事直呼:好家伙

大家好,我是二黑。

前几天有一个读者说最近要整理几千份文件,头都要整秃了,不知道能不能用Python解决,我们来看一下,你也可以思考一下。

由于涉及文件私密所以具体内容已做脱敏处理。

大概是这样,一个文件夹下有多份会议通知信息(本文以 7 份文件为例)
在这里插入图片描述

每一份通知打开格式基本类似,如下所示
在这里插入图片描述

现在需要将每份会议文档中的 学习时间、学习内容、学习形式、主持人 四项关键信息提取出来,整理到 Excel 表格中:
在这里插入图片描述

在他真实需求中,会议通知四年积累下来有快 1000 份(四年开了这么多次会也是很厉害…),用人力挨个打开文件并录到 Excel 中工作量实在太大。

好家伙,这种重复的无聊工作, 不就是一份非常适合交给 Python 的自动化工作吗?我不允许我的粉丝还不会!

下面我们来看看如何用Python解决这个问题,主要将涉及:

openpyxl 写入 Excel 文件python-docx 读取 Word 文件glob 批量获取文件路径

为了简化上面的需求,本文中需要获取的会议通知文件一共 7 个,分别命名为 会议通知1.docx 会议通知2.docx… 会议通知7.docx,存放在 Notice 文件夹下。输出的目标 Excel 文件命名为 Meeting_temp.xlsx

一、基本逻辑

写代码之前都先明确完整的问题需要分为几个小步骤实现。从需求中我们大概可以将代码分为以下几步:

“获取会议通知 Notice 文件夹下的所有文件;解析每一份 Word 文件,获取需要的四个信息,输出到 Excel 中;保存 Excel 文件”

有了逻辑就有了写代码的思路了。第 1 步可以由 glob 库完成,后面两步就是操作 Word 的 python-docx 库和操作 Excel 的 openpyxl 库的交互协作了。

这两个库我们都有说过,如果你不熟悉,一定要先阅读下面的文章!

python-docx操作Word详解openpyxl操作Excel详解

二、代码实现

首先导入需要的库:
在这里插入图片描述

将模板 Excel 读取进程序:
在这里插入图片描述

写任何批处理的代码之前都建议先写一下单次操作的代码,因此我们先完成对 会议通知 1.docx 文件的解析,确保无误。现在对于文档的结构和关键信息的位置尚不明确,可以先将 Word 以段落 Paragraph 为单位输出观察:
在这里插入图片描述
在这里插入图片描述

文件的文字排布脉络比较清晰,基本是一句话对应一个段落,而需要的信息可以简单通过判断每句话(每段话)前几个字而明确:
在这里插入图片描述

对于学习内容的获取比较特殊,不像其他三个信息,都在一句话中,且关键字就为前几个字:
在这里插入图片描述

可以看到,“学习内容” 四个字和真正包含的内容分散在不同的句子中. 这里简单用一个策略:

“建立一个空列表存放,然后遍历每一段判断,如果一个字符为数字且第二个字符为中文顿号 “、”
就获取存放到列表中。最后把列表中的元素重新组合成一个长字符串即可:

在这里插入图片描述

完成了解析 Word 文件之后,就需要把内容输出的 Excel 文件中了。

简单来说,就是将上面代码获取到的几个元素组合成一个列表,通过 sheet.append(list) 的方法写入 Excel 文件中:
在这里插入图片描述

单个文件解析完,用 glob 改完获取文件夹下全部文件,建立循环逐个解析就能完成本需求,当然最后记得保存 Excel 文件。

完整代码如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
核心也不过三十行代码,总共不过三秒就搞定了!

下面是我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
在这里插入图片描述
对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注微信公众号:程序员二黑,即可获取Python自动化测试资源啦

猜你喜欢

转载自blog.csdn.net/m0_52650621/article/details/112997233