- 内容提要
- 作者简介
- 技术评审者简介
- 致谢
- 译者序 会编程的人不一样
- 前言
- 本书的读者对象
- 编码规范
- 什么是编程
- 本书简介
- 下载和安装 Python
- 启动 IDLE
- 如何寻求帮助
- 聪明地提出编程问题
- 小结
- 第一部分 Python 编程基础
- 第1章 Python 基础
- 第2章 控制流
- 第3章 函数
- 第4章 列表
- 第5章 字典和结构化数据
- 第6章 字符串操作
- 第二部分 自动化任务
- 第7章 模式匹配与正则表达式
- 第8章 读写文件
- 第9章 组织文件
- 第10章 调试
- 第11章 从 Web 抓取信息
- 第12章 处理 Excel 电子表格
- 第13章 处理 PDF 和 Word 文档
- 第14章 处理 CSV 文件和 JSON 数据
- 第15章 保持时间、计划任务和启动程序
- 第16章 发送电子邮件和短信
- 第17章 操作图像
- 第18章 用 GUI 自动化控制键盘和鼠标
- 附录A 安装第三方模块
- 附录B 运行程序
- 附录C 习题答案
16.10 实践项目
作为实践,编程完成以下任务。
16.10.1 随机分配家务活的电子邮件程序
编写一个程序,接受一个电子邮件地址的列表,以及一个需要做的家务活列表,并随机将家务活分配给他们。用电子邮件通知每个人分配给他们的家务。如果你觉得需要挑战,就记录每个人之前分配家务活的记录,这样就可以确保程序不会向任何人分配上一次同样的家务活。另一个可能的功能,就是安排程序每周自动运行一次。
这里有一个提示:如果将一个列表传入random.choice()函数,它将从该列表中返回一个随机选择的项。你的部分代码看起来可能像这样:
chores = ['dishes', 'bathroom', 'vacuum', 'walk dog'] randomChore = random.choice(chores) chores.remove(randomChore) # this chore is now taken, so remove it
16.10.2 伞提醒程序
第11章展示了如何利用requests模块,从http://weather.gov/抓取数据。编写一个程序,在你早晨快醒来时运行,检查当天是否会下雨。如果会下雨,让程序用短信提醒你出门之前带好一把伞。
16.10.3 自动退订
编程扫描你的电子邮件账户,在所有邮件中找到所有退订链接,并自动在浏览器中打开它们。该程序必须登录到你的电子邮件服务提供商的IMAP服务器,并下载所有电子邮件。可以用BeautifulSoup(在第11章中介绍)检查所有出现unsubscribe(退订)的HTML链接标签。
得到这些URL的列表后,可以用webbrowser.open(),在浏览器中自动打开所有这些链接。
仍然需要手工操作并完成所有额外的步骤,从这些邮件列表中退订。在大多数情况下,这需要点击一个链接确认。
但这个脚本让你不必查看所有电子邮件,寻找退订链接。然后,可以将这个脚本转给你的朋友,让他们能够针对他们的电子邮件账户运行它(要确保你的邮箱密码没有硬编码在源代码中)。
16.10.4 通过电子邮件控制你的电脑
编写一个程序,每15分钟检查电子邮件账户,获取用电子邮件发送的所有指令,并自动执行这些指令。例如,BitTorrent是一个对等网络下载系统。利用免费的BitTorrent软件,如qBittorrent,可以在家用电脑上下载很大的媒体文件。如果你用电子邮件向该程序发送一个(完全合法的,根本不是盗版的)BitTorrent链接,该程序将检查电子邮件,发现这个消息,提取链接,然后启动qBittorrent,开始下载文件。通过这种方式,你可以在离开家的时候让家用电脑开始下载,这些(完全合法的,根本不是盗版的)下载在你回家前就能完成。
第15章介绍了如何利用subprocess.Popen()函数启动计算机上的程序。例如,下面的调用将启动qBittorrent程序,并打开一个torrent文件:
qbProcess = subprocess.Popen(['C:\\Program Files (x86)\\qBittorrent\\ qbittorrent.exe', 'shakespeare_complete_works.torrent'])
当然,你希望该程序确保邮件来自于你自己。具体来说,你可能希望该邮件包含一个密码,因为在电子邮件中伪造“from”地址,对黑客来说很容易。该程序应该删除它发现的邮件,这样就不会每次检查电子邮件账户时重复执行命令。作为一个额外的功能,让程序每次执行命令时,用电子邮件或短信给你发一条确认信息。因为该程序运行时,你不会坐在运行它的计算机前面,所以利用日志函数(参见第 10章)写文本文件日志是一个好主意,你可以检查是否发生错误。
qBittorrent(以及其他BitTorrent应用程序)有一个功能,下载完成后,它可以自动退出。第15章解释了如何用Popen对象的wait()方法,确定启动的应用程序何时已经退出。wait()方法调用将阻塞,直到qBittorrent停止,然后程序可以通过电子邮件或短信,通知你下载已经完成。
可以为这个项目添加许多可能的功能。如果遇到困难,可以从 http://nostarch. com/automatestuff/下载这个程序的示例实现。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论