Python怎么監(jiān)控Github項目更新并自動下載,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、澗西網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為澗西等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
如果你有自己在本地維護一個開源代碼庫,你就會知道檢測這些庫是否更新了是多麻煩的一件事情。隨著庫的增大,人工維護成本也就越來越大。因此便有了這個項目的想法:用Python監(jiān)控Github項目是否有更新,如果有的話自動下載該更新!
為了能夠獲取github上的項目的更新時間,我們需要調(diào)用github的一個API:
https://api.github.com/repos/用戶名/庫名
可以看到,這個API由 用戶名/庫名 組成,因此我們的文件名應(yīng)該以它為標(biāo)準(zhǔn)才能方便API的調(diào)用,由于文件名不可以帶有 '/' 這樣的特殊符號,因此我們改為下劃線分割,如FastText項目調(diào)用API的時候為:
https://api.github.com/repos/facebookresearch/fastText
我們保存的文件名則為 facebookresearch_fastText.zip
這樣,在調(diào)用API、下載文件的時候?qū)奖阍S多。
2.獲得文件夾里所有文件名及最后修改時間
為了判斷github上的項目是否相對于本地有更新,我們需要獲得每一個本地的文件的最后修改時間,因此這是一個字典關(guān)系。代碼如下:
首先我們要通過調(diào)用我們前面說提到的API 獲取github線上項目的時間。其次,一定要將其格式化為10位時間戳,因為我們第二步獲得的時間也是10位時間戳,這樣對比起來非常方便。最后返回的時候只需要返回是否需要更新即可。如圖所示。
代碼如下:
由于許多github項目文件壓縮包都挺大的,我們這里采用了流式下載。如果你的項目特別多,你需要更快地進行下載,請采用批量異步下載。在我們之前的那篇文章里都有,點擊即可閱讀。
我們把已經(jīng)下載好的項目文件放在libs文件夾里,自動下載得到的文件放置在new文件夾中。文件結(jié)構(gòu)如下:
F:\pythondict\pythondict-downloads\
│ superviser.py
│
├─libs
│ facebookresearch_fastText.zip
│ facebookresearch_MUSE.zip
│
└─new
整套代碼如下,為了防范盜取文章的家伙,原諒我這里是圖片的格式,如果需要請復(fù)制以下鏈接或點擊閱讀原文查看本部分:
https://pythondict.com/download/python-watch-github-update-download/
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
分享題目:Python怎么監(jiān)控Github項目更新并自動下載
分享路徑:http://jinyejixie.com/article24/johhje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、外貿(mào)建站、手機網(wǎng)站建設(shè)、網(wǎng)站改版、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)