大家都用Python实现了哪些办公自动化?

2021年09月15日 阅读数:1
这篇文章主要向大家介绍大家都用Python实现了哪些办公自动化?,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

Python 能作的事情太多的!!!看看我是怎么玩的!

1、快速分享文件方便访问文件夹(局域网)

好比我最经常使用的,进入一个须要公开的目录,执行:html

python -m SimpleHTTPServer 80

(用过的点赞!!简直不要太好用
Python中内置的一个简单http server,方便本身、别人用浏览器来访问你的文件目录。python

2、昨天搞阿里云返现,原本要一千多人一个个核对,用Python半个小时写了个server,输入ID就能自助核验:浏览器

大家都用Python实现了哪些办公自动化?_电子表格

3. 自动定时发邮件服务器

Python SMTP发送邮件 | 菜鸟教程​www.runoob.com大家都用Python实现了哪些办公自动化?_python_02
处理Excel、Word、PDF等经常使用办公软件,处理CSV文件和JSON数据,从Web抓取网络信息,批量处理大量图片,发送电子邮件和短信等等,用Python均可以轻松完成!
光说不练假把式,人邮君举几个有趣的、实用的例子一块儿看看叭~
一、从多个PDF中合并选择的页面
假定你有一个很无聊的任务,须要将几十个PDF 文档合并成一个PDF 文档。每个文档都有一个封面做为第一页,但你不但愿合并后的文档中重复出现这些封面。即便有许多免费的程序能够合并PDF,不少也只是简单地将文档合并在一块儿。
让咱们来写一个Python 程序,定制须要合并到PDF 中的页面。
总的来讲,程序须要完成如下任务。网络

  1. 找到当前工做目录中的全部PDF 文档。
  2. 按文档名排序,这样就能有序地添加这些PDF。
  3. 除了第一页以外,将每一个PDF 的全部页面写入输出的文档。

从实现的角度来看,代码须要执行如下操做。异步

  1. 调用os.listdir(),找到当前工做目录中的全部文件,并去除非PDF 文档。
  2. 调用Python 的sort()列表方法,将文档名按字母排序。
  3. 为输出的PDF 文档建立PdfFileWriter 对象。
  4. 循环遍历每一个PDF 文档,为它建立PdfFileReader 对象。
  5. 针对每一个PDF 文档,循环遍历每一页,第一页除外。
  6. 将页面添加到输出的PDF。
  7. 将输出的PDF 写入一个文档,名为allminutes.pdf。

针对这个项目,打开一个新的文件编辑器窗口,将它保存为combinePdfs.py。
第 1 步:找到全部PDF 文档
首先,程序须要取得当前工做目录中全部带.pdf 扩展名的文档列表,并对它们排序。
让你的代码看起来像这样:编辑器

大家都用Python实现了哪些办公自动化?_软件测试_03

在#!行和介绍程序作什么的描述性注释以后,代码导入了os 和PyPDF2 模块①。os.listdir('.')调用将返回当前工做目录中全部文档的列表。代码循环遍历这个列表,将带有.pdf 扩展名的文档添加到pdfFiles 中②。而后,列表按照字典顺序排序,调用sort()时须要带有key/str.lower 关键字参数③。
代码建立了一个PdfFileWriter 对象,以保存合并后的PDF 页面④。最后,使用一些注释语句简要描述了剩下的程序。
第 2 步:打开每一个PDF 文档
如今,程序必须读取pdfFiles 中的每一个PDF 文档。在程序中加入如下代码:ide

大家都用Python实现了哪些办公自动化?_电子邮件地址_04

针对每一个PDF 文档,循环内的代码调用open(),以'wb'做为第二个参数,用读二进制的模式打开文档。open()调用会返回一个File 对象,它被传递给PyPDF2.PdfFileReader(),以建立针对那个PDF 文档的PdfFileReader 对象。
第 3 步:添加每一页
针对每一个PDF 文档,程序须要循环遍历每一页,第一页除外。在程序中添加如下代码:学习

大家都用Python实现了哪些办公自动化?_服务器_05

for 循环内的代码将每一个Page 对象复制到PdfFileWriter 对象。要记住,你须要跳过第一页。由于PyPDF2 认为0 是第一页,因此循环应该从1 开始①,而后向上增加到pdfReader.umPages 中的整数,但不包括它。
第 4 步:保存结果
在这些嵌套的for 循环完成后,pdfWriter 变量将包含一个PdfFileWriter 对象,以合并全部PDF 的页面。最后一步是将这些内容写入硬盘上的一个文档。在程序中添加如下代码:测试

大家都用Python实现了哪些办公自动化?_服务器_06

向open()传入'wb',以写二进制的模式打开PDF 文档allminutes.pdf。而后,将获得的File 对象传给write()方法,以建立实际的PDF 文档。调用close()方法,结束程序。
二、向会员发送会费提醒电子邮件
假定你一直“自愿”为“强制自愿俱乐部”记录会员会费。这确实是一项枯燥的工做,包括维护一个电子表格,记录每月谁交了会费,并用电子邮件提醒那些没交的会员。你没必要本身查看电子表格,而是向会费逾期的会员复制、粘贴和发送相同的电子邮件。
让咱们用Python编写一个脚本,帮你完成任务。
在较高的层面上,下面是程序要完成的任务。

  1. 从Excel 电子表格中读取数据。
  2. 找出上个月没有交费的全部会员。
  3. 找到他们的电子邮件地址,向他们发送针对我的的提醒。

这意味着代码须要执行如下操做。

  1. 用openpyxl 模块打开并读取Excel 文档的单元格(处理Excel 文档参见第13 章)。
  2. 建立一个字典,包含会费逾期的会员。
  3. 调用smtplib.SMTP()、ehlo()、starttls()和login(),登陆SMTP 服务器。
  4. 针对会费逾期的全部会员,调用sendmail()方法,发送针对我的的电子邮件提醒。

打开一个新的文件编辑器窗口,并保存为sendDuesReminders.py。
第 1 步:打开Excel 文件
假定用来记录会费支付的Excel 电子表格看起来如图 18-2 所示,放在名为duesRecords.xlsx的文件中。能够从异步社区本书对应页面下载该文件。该电子表格中包含每一个成员的姓名和电子邮件地址。每月有一列,用来记录会员的付款状态。在成员支付会费后,对应的单元格就记为paid。
该程序必须打开duesRecords.xlsx,经过读取sheet.max_column 属性,弄清楚最近一个月的列。
在文件编辑器窗口中输入如下代码:

大家都用Python实现了哪些办公自动化?_电子表格_07

大家都用Python实现了哪些办公自动化?_软件测试_08

记录会员会费支付的电子表格

导入openpyxl、smtplib 和sys 模块后,咱们打开duesRecords.xlsx 文件,将获得的Workbook 对象保存在wb 中①。而后取得Sheet1,将获得的Worksheet 对象保存在sheet中②。既然有了Worksheet 对象,就能够访问行、列和单元格了。咱们将最后一列保存在lastCol 中③,而后用行号1 和lastCol 来访问应该记录着最近月份的单元格。取得该单元格的值,并将其保存latestMonth 中④。
第 2 步:查找全部未支付会费的成员
一旦肯定了最近一个月的列数(保存在lastCol 中),就能够循环遍历第一行(这是列标题)以后的全部行,看看哪些成员在该月会费的单元格中写着paid。若是会员没有支付会费,就能够从列1 和列2 中分别抓取成员的姓名和电子邮件地址。这些信息将放入unpaidMembers字典,它记录最近一个月没有交费的全部成员。将如下代码添加到sendDuesReminder.py 中:

大家都用Python实现了哪些办公自动化?_软件测试_09

大家都用Python实现了哪些办公自动化?_电子表格_10

这段代码设置了一个空字典unpaidMembers,而后循环遍历第一行以后全部的行①。对于每一行,最近月份的值保存在payment 中②。若是payment 不等于'paid',则第一列的值保存在name 中③,第二列的值保存在email 中④,将name 和email 添加到unpaidMembers 中⑤。
第 3 步:发送定制的电子邮件提醒
获得全部未付费成员的名单后,就能够向他们发送电子邮件提醒了。将下面的代码添加到程序中,但要代入你的真实电子邮件地址和提供商的信息:

大家都用Python实现了哪些办公自动化?_软件测试_11

调用smtplib.SMTP()并传入提供商的域名和端口,来建立一个SMTP 对象。调用ehlo()和starttls(),而后调用login(),并传入你的电子邮件地址和sys.argv[1](其中保存着你的口令字符串)。在每次运行程序时,将口令做为命令行参数输入,避免在源代码中保存口令。程序登陆到你的电子邮件帐户后,就应该遍历unpaidMembers 字典,向未支付会费的会员的电子邮件地址发送针对我的的电子邮件。将如下代码添加到sendDuesReminders.py:

大家都用Python实现了哪些办公自动化?_服务器_12

这段代码循环遍历unpaidMembers 中的姓名和电子邮件。对于每一个没有付费的成员,咱们用最新的月份和成员的名称定制了一条消息,并保存在body 中。输出表示正在向这个会员的电子邮件地址发送电子邮件。而后调用sendmail(),向它传入地址和定制的消息。返回值保存在sendmailStatus 中。
回忆一下,若是SMTP 服务器在发送某个电子邮件时报告错误,sendmail()方法将返回一个非空的字典值。for 循环的最后部分在④行检查返回的字典是否非空,若是非空,则输出收件人的电子邮件地址以及返回的字典。
程序完成发送全部电子邮件后,调用quit()方法,与SMTP 服务器断开链接。
若是运行该程序,输出结果会像这样:

大家都用Python实现了哪些办公自动化?_python_13

收件人会收到一封关于他们未支付会费的邮件,看起来就像你手动发送的邮件同样。

福利来了~

为了帮助你们迅速创建测试思惟能力,早日斩获大厂Offer、掌握职场话语权,下面这份《软件测试全栈学习路线图》应该会对你颇有帮助

大家都用Python实现了哪些办公自动化?_电子邮件地址_14

从测试概念到最后的测试开发,但愿你们能照着这个体系,在3-4年内完成这样一个体系的构建,能够说,这个过程会让你痛不欲生,但只要你熬过去了,之后的生活就会轻松不少,正所谓完事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好:不积跬步无以致千里,等到完成以后在回顾这段路程的时候,你确定会感慨良多,掌握了以上技术,在任何一线互联网大厂测试岗位都能独挡一面

下面是一些配套的资源,但愿能帮到你们

大家都用Python实现了哪些办公自动化?_电子邮件地址_15大家都用Python实现了哪些办公自动化?_电子表格_16这些资料,对于作【软件测试】的朋友来讲应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,但愿也能帮助到你!凡事要趁早,特别是技术行业,必定要提高技术功底。