教材太貴?一小段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頁面組合成一個文件,做成這本書的副本(不確定是否合法)。當然,這是一個糟糕的副本,因為它無法被檢索。但是我找了一切借口去盡量使用這本“書”。
這個例子說明了兩個關鍵點,這兩點在我學習數據科學的過程中一直伴隨著我:
- 學一個新技能***的方法是找一個亟需解決的問題。
- 你不必等到完全精通一個技能才開始使用它。
依靠短短幾行的代碼和一本免費的在線圖書,我編寫了一段真正可以應用的程序。學習基礎知識有時是很無聊的,當我***次嘗試學習Python時,因為搞不懂數據結構以及循環這類的概念,僅僅幾個小時就放棄了。而調整策略以后,我開始為現實中的問題尋找解決方案,并且在這過程中學習到了基礎知識。編程和數據科學有太多需要學習了,但是你不必一口吃成個大胖子,一次學完所有的知識。找到一個需要解決的問題,然后開始學習吧!
在這之后,我做了一些更復雜的項目,但我仍然記得這段有趣的Python編程初體驗。
原文鏈接:
https://towardsdatascience.com/python-is-the-perfect-tool-for-any-problem-f2ba42889a85
【本文是51CTO專欄機構大數據文摘的原創譯文,微信公眾號“大數據文摘( id: BigDataDigest)”】