您好,登錄后才能下訂單哦!
Python怎么監控Github項目更新并自動下載,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
如果你有自己在本地維護一個開源代碼庫,你就會知道檢測這些庫是否更新了是多麻煩的一件事情。隨著庫的增大,人工維護成本也就越來越大。因此便有了這個項目的想法:用Python監控Github項目是否有更新,如果有的話自動下載該更新!
為了能夠獲取github上的項目的更新時間,我們需要調用github的一個API:
https://api.github.com/repos/用戶名/庫名
可以看到,這個API由 用戶名/庫名 組成,因此我們的文件名應該以它為標準才能方便API的調用,由于文件名不可以帶有 '/' 這樣的特殊符號,因此我們改為下劃線分割,如FastText項目調用API的時候為:
https://api.github.com/repos/facebookresearch/fastText
我們保存的文件名則為 facebookresearch_fastText.zip
這樣,在調用API、下載文件的時候將會方便許多。
2.獲得文件夾里所有文件名及最后修改時間
為了判斷github上的項目是否相對于本地有更新,我們需要獲得每一個本地的文件的最后修改時間,因此這是一個字典關系。代碼如下:
首先我們要通過調用我們前面說提到的API 獲取github線上項目的時間。其次,一定要將其格式化為10位時間戳,因為我們第二步獲得的時間也是10位時間戳,這樣對比起來非常方便。最后返回的時候只需要返回是否需要更新即可。如圖所示。
代碼如下:
由于許多github項目文件壓縮包都挺大的,我們這里采用了流式下載。如果你的項目特別多,你需要更快地進行下載,請采用批量異步下載。在我們之前的那篇文章里都有,點擊即可閱讀。
我們把已經下載好的項目文件放在libs文件夾里,自動下載得到的文件放置在new文件夾中。文件結構如下:
F:\pythondict\pythondict-downloads\
│ superviser.py
│
├─libs
│ facebookresearch_fastText.zip
│ facebookresearch_MUSE.zip
│
└─new
整套代碼如下,為了防范盜取文章的家伙,原諒我這里是圖片的格式,如果需要請復制以下鏈接或點擊閱讀原文查看本部分:
https://pythondict.com/download/python-watch-github-update-download/
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。