让我们 用Python监控Github项目是否有更新,如果有的话自动下载该更新 !
1.统一文件名格式
为了能够获取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/
-
监控
+关注
关注
6文章
2163浏览量
55054 -
API
+关注
关注
2文章
1479浏览量
61765 -
python
+关注
关注
55文章
4777浏览量
84396 -
GitHub
+关注
关注
3文章
466浏览量
16366
发布评论请先 登录
相关推荐
评论