可以使用代码自动化的 6 项耗时任务

目前还没有读者喜欢这个。
How has open source changed your life?

Opensource.com

识字曾经是抄写员和牧师的领域。 后来,世界变得更加复杂,要求每个人都阅读和写作。 计算机也是一种识字形式,但如果只有程序员这个神职人员才能理解它,对于我们复杂的在线世界来说是不够的。“学习编程”已成为所有年龄段教育的口头禅。 但是,在清除炒作之后,为什么人们需要学习编程? 它到底能给我们带来什么?

不是每个人都需要成为软件工程师,但几乎每个办公室工作人员都将笔记本电脑作为日常工具。 计算机是如此巨大的生产力助推器,因为它们支持为这些工作人员设计的大量程序和应用程序市场。 但是商业和开源软件都存在“最后一英里”问题:它们不会自动化所有可以想象的任务。 仍然有一些计算琐事需要大量重复(并且相当无脑)的打字和点击。 即使您有一个实习生来推动这些任务,它们也是需要人的任务,因为没有软件可以自动化它。 这些任务对于软件公司来说规模太小或太具体,无法经济地创建自定义解决方案。

这就是日常编程可以拯救的地方。 一点编程知识可以让任何人编写小脚本来完成这些任务,并节省他们数小时(或数周或数月)的精力。 虽然 Excel 具有可编程宏,Outlook 具有可配置的电子邮件规则,但在像 Python 这样的真正编程语言中进行编码具有更强的适应性和强大的功能。 尽管它以类似于“火箭手术”而闻名,但编程只是一种像驾驶汽车一样的技能。 您在参加驾照考试时可能感到紧张,但之后操作机动车辆就成了现代生活的日常部分。

我的最新著作用 Python 自动化繁琐的事情跳过了计算机科学,只教授足够的 Python 编程知识,以达到实用的技能水平。 每个人都掌握这些技能非常重要,因此我在 AutomatetheBoringStuff.com 上根据 知识共享 许可免费提供该书的在线版本,此外还通过 No Starch Press 出版印刷版。 本书的第一部分是针对流行的 Python 语言的初学者的通用编程教程。 第二部分介绍了可用于自动化任务的 Python 模块。

但是人们将能够编写的这些任务是什么? 我发现它们通常分为六类

1. 收集数据,格式化数据

正则表达式(第 7 章)允许您对计算机进行编程以进行文本模式匹配。 您一直都在自己进行模式匹配:文本模式是您如何判断 415-555-1234 是一个电话号码,而 4,155,551,234 不是。 如果您知道正在寻找的数据的一般模式,您的笔记本电脑可以比您滚动浏览文档更快地收集您需要的确切信息。

假设您有一个过去五年每月销售数据的庞大 PDF 文件。 或者您可能有 60 个单独的 Excel 文件形式的数据。 或者它位于一个网站的多个页面上,要求您在浏览每个页面后单击“下一步”链接。 我们需要的数据通常采用不方便的格式。

Python 有几个模块可以从 PDF、Excel 电子表格、Word 文档、网站、CSV 文件和其他格式读取数据。 从数千个文件中读取数据对您的笔记本电脑来说不是问题。 一旦您的程序加载了这些信息,它就可以以您的组织需要的任何格式输出。 这肯定比手动复制和粘贴文本要好。

2. 一批指令

您可能学到了一些键盘快捷键:按 Ctrl+A、Ctrl+C 比将鼠标移动到菜单并单击“编辑”、“全选”,然后“编辑”、“复制”要快得多。 想象一下,如果您可以创建自己的快捷方式。 编写一个可以启动其他程序或执行现有命令的程序(第 15 章)可以让您将多个步骤变成一个步骤。 您可以编写程序来控制键盘和鼠标(第 18 章),自动填写表格等等。 这是一种可以长期节省您大量精力的技巧,特别是对于您经常执行的命令。

3. 批量文件操作

将文件复制到闪存驱动器很简单。 但是一些文件操作并不那么简单。 如果您只需要复制在过去一周内具有修改时间戳的文件怎么办? 或者如果您需要重命名数百个文件,以便根据它们所在的文件夹在其名称中添加前缀怎么办? 而且您需要对分布在几个不同文件夹中的文件执行这些操作? 编写一个程序来根据您的特定标准复制、移动、重命名、删除或压缩(第 9 章)可以快速准确地为您完成此类文件归档。

4. 自动检查

检查错别字是一项常见的任务,因此经常在软件中找到。 但是检查对您或您的组织的需求特别的问题呢? 假设一位同事每天通过电子邮件向您发送带有电话号码的电子表格,并且您需要知道其中是否缺少区号。 或者您有有时缺少数字的 PDF 报告。 自己查看这些内容既乏味又容易出错。 您可以编写脚本来检查缺少的数据或不符合有效文本模式的数据(第 7 章),从而将自己从这些琐事中解放出来。

5. 通知

也许您有过一次又一次地单击浏览器中的“刷新”,等待网页更新您需要的信息或您想要注册的服务的经历。 这是一种排队等候的任务,计算机可以为您检查,并在准备就绪时向您发送电子邮件或 SMS 文本通知(第 16 章)。 一个长时间运行的程序可以每天、每小时甚至每隔几秒读取一个网页(第 11 章)或其他来源(第 15 章)。 无论您是否使用笔记本电脑,它都可以检查更新。 这样,您甚至不必在笔记本电脑前才能收到通知。 您的程序可以通过短信通知您的智能手机。

6. 报告

编译报告是一项繁琐的工作,但收集和格式化信息可以自动完成(如第一类所述)。 您的报告生成程序可以每天或每周一次启动定期报告(第 15 章),您的代码可以将这些报告通过电子邮件发送给需要它们的人(第 16 章)。 您为对前几类中的程序进行编码而学到的所有技能都可以用于完全自动化地向同事和经理发送定期报告。

如果他们学会了编程,您的同事和经理可以编写代码来自动读取报告以获取任何可操作的信息。

您的笔记本电脑是一个强大的工具,您可能已经在您的职业或个人生活中使用了多年。 您不必仅限于使用其他人创建并出售给您的软件。 通过学习编程,您可以最大限度地提高其生产潜力和您自己的潜力。

要阅读人们为激发自己的想象力而自动执行的任务的示例,请查看 Reddit 上的此对话

User profile image.
Al Sweigart 是旧金山的一名软件开发人员和科技图书作者。 他撰写了几本 Python 书籍,这些书籍已根据知识共享许可在 https://inventwithpython.com 上提供

6 条评论

很棒的文章。

从这些小型的编码项目入手是让工作更轻松的好方法。 它也符合 Linux 哲学原则“自动化一切”。

你说的都对。 但看看你周围,有多少人在几天后仍然记得你教给他们的小技巧? 有多少工人只是将计算机视为另一台咖啡机? 有多少秘书不知道如何使用文字处理器? 现在为大众编码? 恕我直言,编码仍然是精英神职人员的特权。

是的。 对于大多数人来说,计算机只是另一种电器。 但我个人认为,即使只有一个人瞥见了幕后的真正力量,也是值得的。

回复 作者:SET(未验证)

假设我提高了生产力——然后呢? 会分配更多的工作,但不会增加工资,而且很可能我的一个同事会被裁员。

这真的让我笑了。 谢谢!

不幸的是,在许多工作场所都是真实的陈述。 工作效率更高的人通常会获得更高的工作量来弥补。 希望更多的组织采用基于绩效的加薪。

回复 作者:George McDuffee(未验证)

至于因为自动化了一些工作而获得更多工作; 不要告诉任何人你已经自动化了工作。 但要有关于如何完成的文档,这样如果你找到更好的工作,就可以把它交给别人。 如果这份工作应该需要一个小时,但你的脚本需要 5 分钟...... 听起来你有了空闲时间,大约 55 分钟。

当你的单调乏味的工作被自动化时,只需继续“工作”即可。 没有人需要知道你工作更聪明。

知识共享许可此作品已获得知识共享署名-相同方式共享 4.0 国际许可协议的许可。
© . All rights reserved.