教材太贵?一小段Python代码帮你自动翻页和扫描

反思通常是一件有益的事,对程序员来说就更是如此。我的第一个Python项目距今已经两年,但我仍然常常想起它,所以我写了这篇文章与大家分享。作为一名航空航天工程专业的学生,我第一次学习Python是想要避免使用电子表格。当时的我还不知道这是一个多么明智的决定。

我的Python启蒙书是Al Sweigart先生写的《Python编程快速上手——让繁琐工作自动化》(Automate the Boring Stuff with Python)。这是一本很好的应用型书籍,它包含了一些能够完成有用任务的简单程序。当我面对一个新的问题时,我会寻找一切机会去使用它来解决问题。当时我遇到了一个亟待解决的问题——我需要使用一本价格高达200刀的教材。

购买一本教材,我个人的预算是不超过20刀(《让繁琐的工作自动化》在网上可以免费阅读)。而且我不愿意去租书。

我很想在完成第一次作业之前拥有这本教材。接下来我发现亚马逊的新用户有一周的免费阅读该书的权限。于是我利用这个免费资源完成了第一次的作业。虽然可以继续每周创建新的账号来读书,但我需要一个更好的办法。于是我打开了Python,开始了我的第一个编程应用。

在《让繁琐的工作自动化》这本书里,有很多有用的库。pyautogui就是其中之一,它可以让你通过Python控制键盘和鼠标。

人们说对于一个拥有锤子的人来说,所有的问题看起来都像一颗钉子,这种说法太贴切了。Python和pyautogui使我能够自动地点击翻页键并截屏。当我把这两个操作结合起来后,教材的问题就迎刃而解了。

我写了我的第一个程序来自动翻阅每一页并且截屏。虽然最终的代码只有十行,我还是很骄傲,就像我在航空航天工程领域取得成就一样自豪。

以下是我的完整的代码:

  1. import pyautogui 
  2.  
  3. import time# Sleep for 5 seconds to allow me to open book 
  4. time.sleep(5)# Range can be changed depending on the number of pages 
  5. for i in range(1000): # Turn page 
  6.  pyautogui.keyDown('right') 
  7.  pyautogui.keyUp('right') # Take and save a screenshot 
  8.  pyautogui.screenshot('images/page_%d.pdf' % i) 
  9.  time.sleep(0.05) 

运行这个代码很简单(我建议大家都试一试)。我将脚本保存为book_sreenshot.py,然后在同一个文件夹里终止了命令符并写道:

  1. python book_screenshot.py 

接下来,我有五秒钟的时间打开书并开至全屏。程序会完成接下来的事情:翻阅每一页并截屏,保存至pdf格式。我会把所有的pdf页面组合成一个文件,做成这本书的副本(不确定是否合法)。当然,这是一个糟糕的副本,因为它无法被检索。但是我找了一切借口去尽量使用这本“书”。

这个例子说明了两个关键点,这两点在我学习数据科学的过程中一直伴随着我:

  • 学一个新技能最好的方法是找一个亟需解决的问题。
  • 你不必等到完全精通一个技能才开始使用它。

依靠短短几行的代码和一本免费的在线图书,我编写了一段真正可以应用的程序。学习基础知识有时是很无聊的,当我第一次尝试学习Python时,因为搞不懂数据结构以及循环这类的概念,仅仅几个小时就放弃了。而调整策略以后,我开始为现实中的问题寻找解决方案,并且在这过程中学习到了基础知识。编程和数据科学有太多需要学习了,但是你不必一口吃成个大胖子,一次学完所有的知识。找到一个需要解决的问题,然后开始学习吧!

在这之后,我做了一些更复杂的项目,但我仍然记得这段有趣的Python编程初体验。

原文链接:

https://towardsdatascience.com/python-is-the-perfect-tool-for-any-problem-f2ba42889a85

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS