讓我們 用Python監(jiān)控Github項目是否有更新,如果有的話自動下載該更新 !
1.統(tǒng)一文件名格式
為了能夠獲取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上的項目是否相對于本地有更新,我們需要獲得每一個本地的文件的最后修改時間,因此這是一個字典關系。代碼如下:
3.與Github線上項目對比更新時間
首先我們要通過調用我們前面說提到的API 獲取github線上項目的時間。其次,一定要將其格式化為10位時間戳,因為我們第二步獲得的時間也是10位時間戳,這樣對比起來非常方便。最后返回的時候只需要返回是否需要更新即可。如圖所示。
代碼如下:
4.如果有需要更新的項目,讓其自動下載
由于許多github項目文件壓縮包都挺大的,我們這里采用了流式下載。如果你的項目特別多,你需要更快地進行下載,請采用批量異步下載。在我們之前的那篇文章里都有,點擊即可閱讀。
5. 整套流程
我們把已經下載好的項目文件放在libs文件夾里,自動下載得到的文件放置在new文件夾中。文件結構如下:
F:pythondictpythondict-downloads
│ superviser.py
│
├─libs
│ facebookresearch_fastText.zip
│ facebookresearch_MUSE.zip
│
└─new
整套代碼如下,為了防范盜取文章的家伙,原諒我這里是圖片的格式,如果需要請復制以下鏈接或點擊閱讀原文查看本部分:
https://pythondict.com/download/python-watch-github-update-download/
-
監(jiān)控
+關注
關注
6文章
2234瀏覽量
55365 -
API
+關注
關注
2文章
1511瀏覽量
62396 -
python
+關注
關注
56文章
4807瀏覽量
85039 -
GitHub
+關注
關注
3文章
473瀏覽量
16564
發(fā)布評論請先 登錄
相關推薦
關于STC單片機的自動下載
Github發(fā)布史上最大更新
【技術雜談】超全 Python 速查表登上 GitHub 熱榜,標星 4600+
Python項目標準結構推薦
如何使用GitHub構建STM32CubeIDE項目?
如何保存自動更新下載的文件
github上有些什么好玩的項目_github開源項目排名
Python機器學習開源項目分析過程中的見解和趨勢
GitHub發(fā)布史上最大更新
10月份GitHub上最熱門的Python開源項目上榜詳情
Python實現(xiàn)自動駕駛
![<b class='flag-5'>Python</b>實現(xiàn)<b class='flag-5'>自動</b>駕駛](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用Github高效率的查找項目
![如何使用<b class='flag-5'>Github</b>高效率的查找<b class='flag-5'>項目</b>](https://file1.elecfans.com/web2/M00/A7/B1/wKgZomUP2yqAHfbqAAAa6TG1ebk979.png)
評論