5 个 Python 自动化项目:从初级项目到高级项目
2022 年的全新自动化项目

如果你正在学习 Python,可以试试把自己的日常工作自动化。

只会执行已经学会的知识,是学不好 Python 的,多尝试才能获得更多回报。

因为我最近工作比较繁忙,所以一直在尝试让任务自动化,最终完成了 5 个新项目。我把这 5 个项目分别归入初级项目、中级项目和高级项目。

本文有每个项目的完整脚本和教程的链接。我在每个项目中都设置了挑战,用来测试大家的 Python 技能。


1. Microsoft Word 自动化(初级项目)

你是不是经常用 Word 编辑求职信、合同协议、简历或报告?

如果你经常遇到这种情况,这个项目就非常适合你。

在本项目中,我们用 Python 和 docxtpl 库自动生成 Word 文档。首先,准备一个想要自动化的文档模板;然后,使用 {{}} 符号作为占位符,在模板中每一个想替换的单词的位置上引入占位符。

为简化流程,我创建了一个求职信的模板,要使用的模板如下:

为了让这个项目对初学者友好,我们只需用 Python 和 docxtpl 替换 {{my_name}}、{{my_phone}}、{{my_email}}、{{my_address}} 和 {{today_date}} 这些元素。

大家可以在此视频中下载模板和脚本,并按步骤来构建这个项目。

挑战:如果你想让项目更高级一些,可以先从 Excel 文件中提取数据,再将数据引入 Word 模板中。

这个教程的第二部分有一个 Excel 文件,如下:

大家要为每行表格分别生成一个新文件。


2. 自动发送电子邮件(初级项目)

我做过的最无聊的工作之一就是发送电子邮件。

对于重要的电子邮件,我们应该认真阅读回复,但对于一些日常的电子邮件,我们可以选择自动处理!这是这个初级项目的目标。我们要用 Python 自动发送电子邮件。

要实现这项任务的自动化只需使用内置的 smtplibemail 模块。我们用 smtplib 通过使用简单邮件传输协议(SMTP)来发送邮件,用 email 包读取、编写和发送更复杂的 MIME 消息。

下面是一个用 Gmail 自动发送邮件的分步教程

• 如何开启 2 步验证,通过 Python 使用 Gmail;

• 如何用 Python 发送普通邮件;

• 如何处理可能出现的 SSL 错误。

挑战:如果你想让项目更有挑战性,可以在电子邮件中附加图片,附加图片需要使用 imghdr 库。


3. 自动填写网页表格(中级项目)

填写网页表格非常乏味!

真的!一遍又一遍地填写名字、电话号码、地址等信息真的很浪费时间,更糟糕的是有时候填写调查表还得编造假数据。

在这个中级项目中,我们要用 Python 在网页表格中填写假数据。那么如何实现自动化填写呢?我们打算使用一个网页自动化库来执行进入网站、输入文本和点击按钮等网页操作。

下面是一个分步教程,介绍如何使用 Python 自动完成这项乏味的任务:

  • 如何在一个单独的表格中填写数据;
  • 如何用 faker 库生成假数据;
  • 如何填写多个网页表格。

挑战:本教程中填写的表格中的元素比较简单。如果你想让项目更具挑战性,可以在表单中添加下拉菜单和多选等高级元素,然后试着将这个高级表格自动化。


4. Tinder 自动化(高级项目)

用户在使用约会 app 进行匹配时,需要一直向右滑动屏幕,这个过程非常耗时,所以匹配成功后,大家反而懒得继续努力把线上匹配转为线下约会了!

这个高级项目可以创建一个帮用户向右滑动屏幕的机器人,这样一来,用户就可以集中精力在搭讪台词上下功夫,提高转化率。

这个项目为什么是高级项目?原因有很多种,这里只举出其中一些:

  • 登录。无论你采用什么登录方式(谷歌或 Facebook),Tinder 都会向你的手机发送一个代码,用这个代码登录 Tinder。为便于处理这个问题,我们需要保持谷歌浏览器会话的活跃性,用 Selenium 控制它。
  • 易出错按钮:使用 .click 方法点击“like”按钮,有时会出现错误。对于这种特殊的网站,我们要采用一种替代方法。
  • 弹出窗口:向右滑动可能会有各种弹窗,所以要把弹窗关掉。

下面这个教程可以帮助大家解决上述问题。

挑战:让机器人向你的匹配对象发送随机的搭讪信息。

注意,发送随机搭讪信息的设计只是为了练习项目!如果你想在应用中得到更多回复,尽量还是不要使用自动发送信息。我试过了,用机器人发送自动信息效果不佳。


5. 在工作中实现任务自动化(超级高级项目)


把工作中的繁琐任务自动化是最具挑战性的事情。

为什么?大家可能找不到分步教程,只能自己摸索要用的库和实现自动化的最佳方案。

如果要找自动化的内容,可以先问自己以下问题:

  1. 哪些任务是我不断重复做的?
  2. 我可以用 Python 实现哪些具体部分的自动化?
  3. 我应该使用什么 Python 库来实现这个项目的自动化?

如果你知道问题 3 的答案,即使你没有找到自动化具体任务的教程,也可以查看文档或指南来使用该资源库。

欢迎大家在下方发表评论,告诉我你们正在自动化的任务。



原文作者:Frank Andrade
原文链接:https://towardsdatascience.com/5-python-projects-to-automate-your-life-from-beginner-to-advanced-90fe29a7d664

推荐阅读
相关专栏
开发者实践
137 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。