讓我們 用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/用戶名/庫名
可以看到,這個(gè)API由 用戶名/庫名 組成,因此我們的文件名應(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ì)方便許多
2.獲得文件夾里所有文件名及最后修改時(shí)間
為了判斷github上的項(xiàng)目是否相對(duì)于本地有更新,我們需要獲得每一個(gè)本地的文件的最后修改時(shí)間,因此這是一個(gè)字典關(guān)系。代碼如下:
3.與Github線上項(xiàng)目對(duì)比更新時(shí)間
首先我們要通過調(diào)用我們前面說提到的API 獲取github線上項(xiàng)目的時(shí)間。其次,一定要將其格式化為10位時(shí)間戳,因?yàn)槲覀兊诙将@得的時(shí)間也是10位時(shí)間戳,這樣對(duì)比起來非常方便。最后返回的時(shí)候只需要返回是否需要更新即可。如圖所示。
代碼如下:
4.如果有需要更新的項(xiàng)目,讓其自動(dòng)下載
由于許多github項(xiàng)目文件壓縮包都挺大的,我們這里采用了流式下載。如果你的項(xiàng)目特別多,你需要更快地進(jìn)行下載,請(qǐng)采用批量異步下載。在我們之前的那篇文章里都有,點(diǎn)擊即可閱讀。
5. 整套流程
我們把已經(jīng)下載好的項(xiàng)目文件放在libs文件夾里,自動(dòng)下載得到的文件放置在new文件夾中。文件結(jié)構(gòu)如下:
F:pythondictpythondict-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/
-
監(jiān)控
+關(guān)注
關(guān)注
6文章
2319瀏覽量
57501 -
API
+關(guān)注
關(guān)注
2文章
1617瀏覽量
64029 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86731 -
GitHub
+關(guān)注
關(guān)注
3文章
483瀏覽量
17682
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)于STC單片機(jī)的自動(dòng)下載
Github發(fā)布史上最大更新
【技術(shù)雜談】超全 Python 速查表登上 GitHub 熱榜,標(biāo)星 4600+
Python項(xiàng)目標(biāo)準(zhǔn)結(jié)構(gòu)推薦
如何使用GitHub構(gòu)建STM32CubeIDE項(xiàng)目?
如何保存自動(dòng)更新下載的文件
github上有些什么好玩的項(xiàng)目_github開源項(xiàng)目排名
Python機(jī)器學(xué)習(xí)開源項(xiàng)目分析過程中的見解和趨勢(shì)
GitHub發(fā)布史上最大更新
10月份GitHub上最熱門的Python開源項(xiàng)目上榜詳情
上傳本地項(xiàng)目代碼到github

Python實(shí)現(xiàn)自動(dòng)駕駛

如何使用Github高效率的查找項(xiàng)目

評(píng)論