Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載

Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、澗西網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為澗西等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

如果你有自己在本地維護(hù)一個(gè)開源代碼庫(kù),你就會(huì)知道檢測(cè)這些庫(kù)是否更新了是多麻煩的一件事情。隨著庫(kù)的增大,人工維護(hù)成本也就越來越大。因此便有了這個(gè)項(xiàng)目的想法:用Python監(jiān)控Github項(xiàng)目是否有更新,如果有的話自動(dòng)下載該更新!

1.統(tǒng)一文件名格式

為了能夠獲取github上的項(xiàng)目的更新時(shí)間,我們需要調(diào)用github的一個(gè)API:

https://api.github.com/repos/用戶名/庫(kù)名

可以看到,這個(gè)API由 用戶名/庫(kù)名 組成,因此我們的文件名應(yīng)該以它為標(biāo)準(zhǔn)才能方便API的調(diào)用,由于文件名不可以帶有 '/' 這樣的特殊符號(hào),因此我們改為下劃線分割,如FastText項(xiàng)目調(diào)用API的時(shí)候?yàn)椋?/p>

https://api.github.com/repos/facebookresearch/fastText

我們保存的文件名則為 facebookresearch_fastText.zip 
這樣,在調(diào)用API、下載文件的時(shí)候?qū)?huì)方便許多Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載。

2.獲得文件夾里所有文件名及最后修改時(shí)間

為了判斷github上的項(xiàng)目是否相對(duì)于本地有更新,我們需要獲得每一個(gè)本地的文件的最后修改時(shí)間,因此這是一個(gè)字典關(guān)系。代碼如下:

Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載

3.與Github線上項(xiàng)目對(duì)比更新時(shí)間

首先我們要通過調(diào)用我們前面說提到的API 獲取github線上項(xiàng)目的時(shí)間。其次,一定要將其格式化為10位時(shí)間戳,因?yàn)槲覀兊诙将@得的時(shí)間也是10位時(shí)間戳,這樣對(duì)比起來非常方便。最后返回的時(shí)候只需要返回是否需要更新即可。如圖所示。

Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載

代碼如下:

Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載

4.如果有需要更新的項(xiàng)目,讓其自動(dòng)下載

由于許多github項(xiàng)目文件壓縮包都挺大的,我們這里采用了流式下載。如果你的項(xiàng)目特別多,你需要更快地進(jìn)行下載,請(qǐng)采用批量異步下載。在我們之前的那篇文章里都有,點(diǎn)擊即可閱讀。

Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載

5. 整套流程

我們把已經(jīng)下載好的項(xiàng)目文件放在libs文件夾里,自動(dòng)下載得到的文件放置在new文件夾中。文件結(jié)構(gòu)如下:

F:\pythondict\pythondict-downloads\
│ superviser.py

├─libs
│ facebookresearch_fastText.zip
│ facebookresearch_MUSE.zip

└─new

整套代碼如下,為了防范盜取文章的家伙,原諒我這里是圖片的格式,如果需要請(qǐng)復(fù)制以下鏈接或點(diǎn)擊閱讀原文查看本部分:
https://pythondict.com/download/python-watch-github-update-download/

Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

分享題目:Python怎么監(jiān)控Github項(xiàng)目更新并自動(dòng)下載
分享路徑:http://muchs.cn/article24/johhje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)網(wǎng)站改版、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管