Python怎么监控Github项目更新并自动下载
Python怎么监控Github项目更新并自动下载,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
成都创新互联专注于企业成都全网营销推广、网站重做改版、涧西网站定制设计、自适应品牌网站建设、H5技术、成都做商城网站、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为涧西等各大城市提供网站开发制作服务。
如果你有自己在本地维护一个开源代码库,你就会知道检测这些库是否更新了是多麻烦的一件事情。随着库的增大,人工维护成本也就越来越大。因此便有了这个项目的想法:用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:\pythondict\pythondict-downloads\
│ superviser.py
│
├─libs
│ facebookresearch_fastText.zip
│ facebookresearch_MUSE.zip
│
└─new
整套代码如下,为了防范盗取文章的家伙,原谅我这里是图片的格式,如果需要请复制以下链接或点击阅读原文查看本部分:
https://pythondict.com/download/python-watch-github-update-download/
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
本文题目:Python怎么监控Github项目更新并自动下载
当前地址:http://pwwzsj.com/article/johhje.html