0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python监控Github项目如何更新并自动下载

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-11-03 15:45 次阅读

让我们 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

    文章

    1983

    浏览量

    54590
  • API
    API
    +关注

    关注

    2

    文章

    1383

    浏览量

    60992
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83468
  • GitHub
    +关注

    关注

    3

    文章

    457

    浏览量

    15924
收藏 人收藏

    评论

    相关推荐

    关于STC单片机的自动下载

    _AUTOLOAD_#include void AutoLoad_Init(void);#endif#endif通过使能宏定义可设置自动下载的使能与否本部分源码可从GitHub获得,该项目
    发表于 12-16 09:34

    Github发布史上最大更新

    看好Github以后的走向,出了很多调侃。比方说充值会员才能搜索下载项目,但是从这几个月的风声来看其实一切都发展的还不错。就在上个月的时候Github刚做过一个
    发表于 10-17 10:03

    使用Python爬虫实现百度图片自动下载的方法

    如何用Python爬虫实现百度图片自动下载
    发表于 05-23 14:55

    【技术杂谈】超全 Python 速查表登上 GitHub 热榜,标星 4600+

    Advanced Python内容。而且还有文本文件可以下载。目前,这份资源已经获得4600+标星,登上了GitHub趋势榜。核心是代码这份资源中,核心是代码,基本没有废话。比如说,在类型方面,只是简单地介绍
    发表于 07-17 04:00

    分享Python项目结构

    Python自动项目结构分享
    发表于 04-15 10:34

    Python项目标准结构推荐

    在真正项目中,一般使用PyCharm或VSCode开发。那有的小伙伴就问了,项目文件目录有没有一个标准的结构?应该没有唯一的统一标准,但Python社区大佬Kenneth Reitz在2013年提出
    发表于 03-28 15:56

    如何使用GitHub构建STM32CubeIDE项目

    我正在考虑将 GitHub 操作用于 CI/CD。我找不到任何有关如何使用 GitHub 操作自动构建 STM32CubeIDE 项目的示例。任何提示/方向?
    发表于 12-08 06:40

    如何保存自动更新下载的文件

    如何保存自动更新下载的文件 问:为了避免重装系统后Windows XP总是“自动更新”,所以我想问一下专家:到底Windows XP下载回来的更
    发表于 03-01 10:32 975次阅读

    Python机器学习开源项目分析过程中的见解和趋势

    开源是技术创新和快速发展的核心。这篇文章向你展示Python机器学习开源项目以及在分析过程中发现的非常有趣的见解和趋势。 我们分析了GitHub上的前20名Python机器学习
    发表于 12-16 08:56 654次阅读

    GitHub发布史上最大更新

    10 月 16 日,在年度 GitHub Universe 正式召开,在大会上不仅发布了GitHub重大更新,还带来了 2018 年的年度报告
    的头像 发表于 11-03 09:31 4323次阅读

    如何在GitHub更新Fork以及PullRequest给源项目

    这里有个小技巧:在默认状态下,会是Base源项目,Head我自己的Fork项目;这样选择任何一个时,会调到某个无法更新的页面;解决方法是先Base或Head一个其他人的账号下的Fork,接着选择
    的头像 发表于 01-08 09:38 4147次阅读
    如何在<b class='flag-5'>GitHub</b>上<b class='flag-5'>更新</b>Fork以及PullRequest给源<b class='flag-5'>项目</b>

    华为LiteOS主库从GitHub迁出,项目将迁入码云

    LiteOS是华为物联网操作系统,现在官方公告称,为了提供更好的服务,Huawei LiteOS开源代码官方主仓库项目于2019年11月从GitHub迁出,后续代码更新、维护将在码云(https://gitee.com/Lite
    的头像 发表于 11-22 10:32 2917次阅读

    10月份GitHub上最热门的Python开源项目上榜详情

    10月份GitHub上最热门的Python开源项目排行已经出炉啦,一起来看看上榜详情吧: 1 GHunt https://github.com/mxrch/GHunt Star 4.8
    的头像 发表于 11-05 15:29 1614次阅读

    Python实现自动驾驶

    今天来一个好玩一点的,汽车已经能够自动驾驶了,Python怎么能没有呢?这不,必须安排上。 一、安装环境 gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为
    发表于 06-06 10:43 1次下载
    <b class='flag-5'>Python</b>实现<b class='flag-5'>自动</b>驾驶

    如何使用Github高效率的查找项目

    GitHub各位应该都很熟悉了,全球最大的开源社区,也是全球最大的同性交友网站~~,但是大部分同学使用GitHub应该就是通过别人的开源链接,点进去下载对应的项目,而真正使用
    的头像 发表于 09-24 14:43 377次阅读
    如何使用<b class='flag-5'>Github</b>高效率的查找<b class='flag-5'>项目</b>