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

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

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

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

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

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

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

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

以下是我的完整的代码:

import pyautogui

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

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

 

 

python book_screenshot.py

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

81888611d0588df7f2fca92b8d52faddb7e3e4ac

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

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

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

阅读全文请点击

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FastStone Capture自5.4版开始,转为共享软件,注册价19.95$。因此,5.3版成为最后的免费版,大家可用此版本。 五星级截屏工具:FastStone Capture最后免费版V5.3   FastStone Capture是一个强大、灵活、易用的截屏工具。你可用它截获屏幕上的任何对象,如窗口、控件、全屏、矩形区域、自选区域、滚动窗口和网页。它还带有创新性的功能,如浮动截屏面板、热键、改变大小、剪切、文字注释、打印、Email、屏幕放大及更多。它实际是国产软件,并且自V4.8开始支持中文标注。   无广告插件!无间谍插件!V5.3版家用免费。   建议在网上搜索下载V5.3版,此后版本皆为shareware. 功能 - 小巧的浮动截屏面板,可拖放至任意位置或缩小到系统托盘 - 资源节约—占内存很少,尤其在缩小到系统托盘时 - 全局热键,随时随地激活程序进行截屏 - 高效工具进行窗口、控件、全屏、矩形/自选区域、滚动区域截屏 - 在Internet Explorer,FireFox,Opera中滚动网页截屏 - 自定义截屏图象的发送目标(内部编辑器、剪贴板、文件) - 屏幕取色 - 文字/箭头直线/高亮/水印注释 - 缩放图片(resize),裁剪、亮度、对比度、gamma校正、锐化、模糊 - 缩放显示(zoom) - 取消/重做 - 存为bmp,jpg,jpeg2000,png,gif,tiff,tga - 通过Email发送截取图片 - 屏幕放大 - 打印过长图片时自动分为多页 - 支持多显示器 - 可设定为开机自启动 - 更多 V5.4 (070514) * 改为shareware   * 略…… V5.3 (070212) * 支持Windows Vista * 改进输出256色png/gif时的质量 * 增:可输出结果到Email发送   * 系统托盘图标的弹出菜单中,增加“回到首选屏幕”(适于多屏幕环境) V5.2 (070116) * 增:设置中增加“滚动刷新时间” * 增:设置中增加选项,可在截屏面板中增加“在编辑器中打开图片”图标 * 增:教程下载链接 V5.1 (070106) * 增:编辑菜单中“背景透明”功能 * 增:可设置在截屏面板中,缩放工具与取色器是否显示 * 增:画图工具中,右键菜单加了“设为前一层/设为后一层”选项 * 改:画图工具热键由T改为D 相关链接 官方页面 http://www.faststone.org/FSCaptureDetail.htm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值