python如何实现自动化办公?看完这篇文章你就知道了_python自动化办公

简介: python如何实现自动化办公?看完这篇文章你就知道了_python自动化办公
第1步:打开Excel文件

假定用来记录会费支付的Excel电子表格看起来如图 18-2 所示,放在名为duesRecords.xlsx的文件中。可以从异步社区本书对应页面下载该文件。

该电子表格中包含每个成员的姓名和电子邮件地址。每个月有一列,用来记录会员的付款状态。在成员支付会费后,对应的单元格就记为paid。

该程序必须打开duesRecords.xlsx,通过读取sheet.max_column属性,弄清楚最近一个月的列(可以参考第13章,了解用openpyxl模块访问Excel电子表格文件单元格的更多信息)。在文件编辑器窗口中输入以下代码:

#! python3
# sendDuesReminders.py - Sends emails based on payment status in spreadsheet.
import openpyxl, smtplib, sys
# Open the spreadsheet and get the latest dues status. wb = openpyxl.load workbook( 'duesRecords.xlsx')e sheet = wb.get sheet by name( 'sheet1')
e lastCol = sheet.max column
e latestMonth = sheet.cell(row=1, column=lastCol).value
# TODO: Check each member's payment status .
# TODO: Log in to email account.
# TODO: Send out reminder emails

图18-2 记录会员会费支付的电子表格

导入openpyxlsmtplibsys模块后,我们打开duesRecords.xlsx文件,将得到的Workbook对象保存在wb中❶。然后取得Sheet1,将得到的Worksheet对象保存在sheet中❷。既然有了Worksheet对象,就可以访问行、列和单元格了。我们将最后一列保存在lastCol中❸,然后用行号1lastCol来访问应该记录着最近月份的单元格。取得该单元格的值,并将其保存在latestMonth中❹。

第2步:查找所有未支付会费的成员

一旦确定了最近一个月的列数(保存在lastCol中),就可以循环遍历第一行(这是列标题)之后的所有行,看看哪些成员在该月会费的单元格中写着paid。如果会员没有支付会费,就可以从列1和列2中分别抓取成员的姓名和电子邮件地址。这些信息将放入unpaidMembers字典,它记录最近一个月没有交费的所有成员。将以下代码添加到sendDuesReminder.py中:

#! python3
# sendDuesReminders.py - Sends emails based on payment status in spreadsheet.
--snip--
# Check each member's payment status .unpaidMembers =o for r in range(2, sheet.max row + 1):e payment = sheet.cell(row=r, column=lastCol).valueif paymentq != 'paid':
e name = sheet.cell(row=r, column=1) .value
 email = sheet.cell(row=r, column=2).value
 s unpaidMembers[name] = email

这段代码设置了一个空字典unpaidMembers,然后循环遍历第一行之后所有的行❶。对于每一行,最近月份的值保存在payment中❷。如果payment不等于'paid',则第一列的值保存在name中❸,第二列的值保存在email中❹,将nameemail添加到unpaidMembers中❺。

第3步:发送定制的电子邮件提醒

得到所有未付费成员的名单后,就可以向他们发送电子邮件提醒了。将下面的代码添加到程序中,但要代入你的真实电子邮件地址和提供商的信息:

#! python3
# sendDuesReminders.py - Sends emails based on payment status in spreadsheet
--snip--
# Log in to email account.
smtpObj = smtplib.SMTP('smtp.

', 587)

smtpObj.ehlo()

smtpObj.starttls()

smtpObj.login(‘my_email_address@example.com’, sys.argv[1])

调用smtplib.SMTP()并传入提供商的域名和端口,来创建一个SMTP对象。调用ehlo()starttls(),然后调用login(),并传入你的电子邮件地址和sys.argv[1](其中保存着你的口令字符串)。在每次运行程序时,将口令作为命令行参数输入,避免在源代码中保存口令。

程序登录到你的电子邮件账户后,就应该遍历unpaidMembers字典,向未支付会费的会员的电子邮件地址发送针对个人的电子邮件。将以下代码添加到sendDuesReminders.py:

#! python3
# sendDuesReminders.py - Sends emails based on payment status in spreadsheet
--snip--
# Send out reminder emails .
for name, email in unpaidMembers.items():o body = "subject: %s dues unpaidq,inDear %s,inRecords show that you have notpaid dues for %s. Please make this payment as soon as possible. Thank you!'" %(latestMonth,name, latestMonth)

这段代码循环遍历unpaidMembers中的姓名和电子邮件。对于每个没有付费的成员,我们用最新的月份和成员的名称定制了一条消息,并保存在body中❶。输出表示正在向这个会员的电子邮件地址发送电子邮件❷。然后调用sendmail(),向它传入地址和定制的消息❸。返回值保存在sendmailStatus中。

回忆一下,如果SMTP服务器在发送某个电子邮件时报告错误,sendmail()方法将返回一个非空的字典值。for循环的最后部分在❹行检查返回的字典是否非空,如果非空,则输出收件人的电子邮件地址以及返回的字典。

程序完成发送所有电子邮件后,调用quit()方法,与SMTP服务器断开连接。

如果运行该程序,输出结果会像这样:

Sending email to alice@example.com...
Sending email to bob@example.com...
Sending email to eve@example.com..

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

操作图像

如果你有一台数码相机,或者只是将照片从手机上传到Facebook,你可能随时会遇到数字图像文件。你可能知道如何使用基本的图形软件,如Microsoft Paint或Paintbrush,甚至用更高级的应用程序,如Adobe Photoshop。但是,如果需要编辑大量的图像,手动编辑可能是漫长、繁琐的工作。

请用Python。pillow是一个第三方Python模块,用于处理图像文件。该模块包含一些函数,可以很容易地裁剪图像、调整图像大小,以及编辑图像的内容。它可以像Microsoft Paint或Adobe Photoshop一样处理图像,有了这种能力,Python可以轻松地自动编辑成千上万的图像。你可以通过运行pip install--user -U pillow==6.0.0来安装pillow。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,Python自动化测试学习等教程。带你从零基础系统性的学好Python!

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)


相关文章
|
5天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的办公自动化管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的办公自动化管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
11天前
|
Python
办公自动化-Python如何提取Word标题并保存到Excel中?
办公自动化-Python如何提取Word标题并保存到Excel中?
25 2
|
1天前
|
JSON 程序员 数据格式
豆瓣评分9.6!用81个项目带你从Python 3零基础到Python自动化
Python的名字来自超现实主义的英国喜剧团体,而不是来自蛇。Python程序员被亲切地称为Pythonistas。Monty Python和与蛇相关的引用常常出现在Python的指南和文档中。
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的办公自动化管理系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js的办公自动化管理系统附带文章和源代码设计说明文档ppt
14 4
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的小型企业办公自动化系统的设计和开发附带文章和源代码设计说明文档ppt
基于ssm+vue.js的小型企业办公自动化系统的设计和开发附带文章和源代码设计说明文档ppt
17 4
|
6天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的小型企业办公自动化系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的小型企业办公自动化系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
6天前
|
安全 数据管理 测试技术
网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
|
9天前
|
XML 数据格式 Python
Python自动化脚本编写技巧
本文介绍了Python自动化脚本的编写技巧:选择合适的库(如os, requests, BeautifulSoup)以简化编程,利用循环和条件语句实现流程控制,通过函数和模块提高代码的可读性和可维护性,使用异常处理保证脚本稳定性,以及借助日志记录进行问题追踪。通过这些方法,可以编写出高效、稳定的自动化脚本。
|
9天前
|
Web App开发 JSON 测试技术
Python在自动化测试中的角色
本文探讨了Python在自动化测试中的关键作用,强调其语法简洁、丰富的库和框架(如Selenium和Appium)、跨平台兼容性和可扩展性。通过示例展示了Python结合Selenium进行Web自动化测试以及使用requests库进行API自动化测试的应用,指出Python在自动化测试领域的日益重要性。
|
Python
Python办公自动化--Word、Excel、PDF
python操作excel主要用到openpyxl库。其主要针对xlsx格式的excel进行读取和编辑。下面简单介绍其使用方法及命令。除openpyxl库外,还有xlwt及xlwd也可以对excel表格实现同样操作。
129 0
Python办公自动化--Word、Excel、PDF