python实现自动翻页代码_手把手 | 教材太贵?一小段Python代码帮你自动翻页和扫描-阿里云开发者社区...

本文讲述了作者作为一个航空航天工程专业的学生,如何使用Python和pyautogui库自动翻页并截图,以免费阅读一本昂贵的教材。通过这个实例,作者强调了解决实际问题来学习编程的重要性,以及不必等到完全掌握技能才开始实践的观念。
摘要由CSDN通过智能技术生成

反思通常是一件有益的事,对程序员来说就更是如此。我的第一个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.png

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

516da44af08d4b7ad8ff0551f9d5d5d2ca225106.png学一个新技能最好的方法是找一个亟需解决的问题。

516da44af08d4b7ad8ff0551f9d5d5d2ca225106.png你不必等到完全精通一个技能才开始使用它。

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

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

原文发布时间为:2018-04-8

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”微信公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值