讓我們 用Python監(jiān)控Github項目是否有更新,如果有的話自動下載該更新 !
1.統(tǒng)一文件名格式
為了能夠獲取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)系。代碼如下:

3.與Github線上項目對比更新時間
首先我們要通過調(diào)用我們前面說提到的API 獲取github線上項目的時間。其次,一定要將其格式化為10位時間戳,因為我們第二步獲得的時間也是10位時間戳,這樣對比起來非常方便。最后返回的時候只需要返回是否需要更新即可。如圖所示。

代碼如下:

4.如果有需要更新的項目,讓其自動下載
由于許多github項目文件壓縮包都挺大的,我們這里采用了流式下載。如果你的項目特別多,你需要更快地進行下載,請采用批量異步下載。在我們之前的那篇文章里都有,點擊即可閱讀。

5. 整套流程
我們把已經(jīng)下載好的項目文件放在libs文件夾里,自動下載得到的文件放置在new文件夾中。文件結(jié)構(gòu)如下:
F:pythondictpythondict-downloads
│ superviser.py
│
├─libs
│ facebookresearch_fastText.zip
│ facebookresearch_MUSE.zip
│
└─new
整套代碼如下,為了防范盜取文章的家伙,原諒我這里是圖片的格式,如果需要請復(fù)制以下鏈接或點擊閱讀原文查看本部分:
https://pythondict.com/download/python-watch-github-update-download/

-
監(jiān)控
+關(guān)注
關(guān)注
6文章
2363瀏覽量
59070 -
API
+關(guān)注
關(guān)注
2文章
2131瀏覽量
66174 -
python
+關(guān)注
關(guān)注
57文章
4856瀏覽量
89526 -
GitHub
+關(guān)注
關(guān)注
3文章
484瀏覽量
18398
發(fā)布評論請先 登錄
關(guān)于STC單片機的自動下載
Github發(fā)布史上最大更新
【技術(shù)雜談】超全 Python 速查表登上 GitHub 熱榜,標(biāo)星 4600+
Python項目標(biāo)準(zhǔn)結(jié)構(gòu)推薦
如何使用GitHub構(gòu)建STM32CubeIDE項目?
如何保存自動更新下載的文件
github上有些什么好玩的項目_github開源項目排名
Python機器學(xué)習(xí)開源項目分析過程中的見解和趨勢
GitHub發(fā)布史上最大更新
10月份GitHub上最熱門的Python開源項目上榜詳情
Python實現(xiàn)自動駕駛
如何使用Github高效率的查找項目

Python監(jiān)控Github項目如何更新并自動下載
評論