还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储

这篇具有很好参考价值的文章主要介绍了还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GitHub是一个基于Web的代码托管平台和开发者社区。它允许开发者存储、管理和分享他们的代码,并进行版本控制。开发者可以在GitHub上创建仓库来存储项目代码,并使用Git来跟踪和管理代码的变更历史。GitHub提供了一系列协作工具,如问题追踪、Pull请求(合并请求)、代码审查等,使开发团队能够更好地协同工作、交流和合作开发。此外,GitHub还是一个活跃的开源社区,开发者可以在上面找到各种开源项目、学习新技术、贡献代码或参与讨论。GitHub的用户可以通过浏览其他开发者的项目、关注感兴趣的人、收藏喜欢的仓库等方式来互动和分享。总之,GitHub为开发者提供了一个集代码托管、版本控制和社交互动于一体的平台。

相信所有从事开发的人员来说,github都是一个必不可少的网站,官方地址在这里,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 当然了有时候因为各种客观存在的网络因素问题,会出现以下访问不到的情况,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 不过没有关系,多刷新几次等等就好了。

我们自己平时在开发过程中经常也会需要到gihub中去查资料,很多项目甚至是已经不错的模板了可以直击拿来使用了,而且github里面也开源了很多底层基础框架类的项目,对于整体技术的推动和发展还是很友好的了,对于新手入门学习也是非常不错的资源库了。

平时我们查询自己想要的项目大都是手动进行下载的,这里本文的主要目的就是开发构建项目自动下载模块,来实现项目资源数据的自动化下载存储。

这里我们以清华大学开源的chatGLM-6B项目为例,官方项目地址在这里,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 常用的手动下载的方式有两种:

【第一种】

使用git命令行来进行下载,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 执行下述命令:

git clone https://github.com/THUDM/ChatGLM-6B

静静等待就可以了,不过经常因为网络等问题会导致下载失败,需要多尝试几次。

【第二种】

直接在项目页面端手动点击操作下载即可,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 实测,这种方式下载更便捷一点,且成功率更高一点。

这两种方式本质上来讲都是基于手动点击操作实现的项目数据下载。

接下来我们来看下如何实现自动项目数据下载与本地存储。最简单的实现方式就是借助于第三方目标git就可以直接实现了,代码实现如下所示:

#!usr/bin/env python
# encoding:utf-8
from __future__ import division



"""
功能: GitHub项目资源数据自动化下载存储
"""



import os
from git import Repo



def download_github_project(repository_url, local_directory):
    # 克隆GitHub项目到本地目录
    Repo.clone_from(repository_url, local_directory)



# 项目链接
github_url = "https://github.com/THUDM/ChatGLM-6B"
repository = github_url.split("/")[-1].strip()
# 本地目录
localDir = "projects/"
saveDir = localDir + repository + "/"
if not os.path.exists(saveDir):
    os.makedirs(saveDir)
# 下载GitHub项目到本地目录
download_github_project(github_url, saveDir)


接下来我们看下对应的项目资源数据,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 可以看到:这是基于自动化下载代码实现的项目下载截图。

前面都说了这是最简单的实现方式,那么自然还会有其他的实现方式,一般网络数据请求下载相关的我们都会经常使用到requests模块, 这里同样也是可以基于requests模块来实现项目资源数据下载的。

核心代码实现如下所示:

def downloadGithubProject(repository_url, local_directory):
    """
    自动化实现GitHub项目资源的下载与本地存储
    repository_url:GitHub项目链接
    local_directory:本地存储目录
    """
    url_parts = repository_url.split("/")
    username = url_parts[-2]
    repository = url_parts[-1].split(".")[0]
    print("repository: ", repository)
    # 构建API请求URL来获取zip文件
    api_url = f"https://api.github.com/repos/{username}/{repository}/zipball"
    # 发送GET请求以获取zip文件内容
    response = requests.get(api_url)
    # 检查响应状态码是否为200 (成功)
    if response.status_code == 200:
        # 保存zip文件到本地
        zip_path = f"{local_directory}/{repository}.zip"
        print("zip_path: ", zip_path)
        with open(zip_path, "wb") as file:
            file.write(response.content)
        # 解压缩zip文件到指定的本地目录
        with zipfile.ZipFile(zip_path, "r") as zip_ref:
            zip_ref.extractall(local_directory)
        # extractZip(zip_path, local_dir+"/"+repository)
        # 删除下载的zip文件
        os.remove(zip_path)
        # 重命名
        dir_name = None
        dir_list = os.listdir(local_directory)
        for one_dir in dir_list:
            if repository in one_dir:
                dir_name = one_dir
                break
        renameDirectory(
            local_dir + "/" + dir_name, local_dir + "/" + repository_url.split("/")[-1]
        )
        print("项目下载完成!")
    else:
        print("无法下载项目。请检查链接或网络连接。")

同样看下结果数据,如下所示:

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储,github,自动化,运维

 还是很方便地了,后面如果配置web服务接口的形式开发一个后端服务模块的话就可以通过简单的请求数据发送的形式就可以实现自动项目数据的下载处理了。文章来源地址https://www.toymoban.com/news/detail-518644.html

到了这里,关于还在手动下载github项目?想要自动化下载github项目?基于python开发项目自动下载模块帮你实现自动下载存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试,我猜它是你想要的优选

    在测试领域中,一个好平台可以实现高效率工作,进而降低人力物力的消耗,今天就给大家安利一个自动化平台,它是一站式自动化测试工具,全称为 AI-TestOps****云平台 ,具有的强大优势值得我们一一细说,接下来让我带领你们一同体验。 有兴趣的小伙伴也可以亲自体验一

    2024年01月15日
    浏览(28)
  • Python接口自动化测试实战详解,你想要的全都有

    目录 前言 一、接口自动化测试概述 二、搭建Python接口自动化测试框架 三、常用接口自动化测试库示例 四、总结 接口自动化测试是当前软件开发中最重要的环节之一,可以提高代码质量、加速开发周期、减少手工测试成本等优点。Python语言在接口自动化测试方面应用广泛,

    2024年02月09日
    浏览(31)
  • 【Python】WebUI自动化—Selenium的下载和安装、基本用法、项目实战(16)

    Selenium 是一个用于测试 Web 应用程序 的自动化测试工具,它直接运行在 浏览器 中,实现了对浏览器的自动化操作,它支持所有主流的浏览器,包括 IE,Firefox,Safari,Chrome 等。 -支持所有主流平台(如, Windows、Linux、IOS、Android、Edge、Opera 等) 实现了诸多 自动化功能 ,比如

    2024年02月08日
    浏览(29)
  • 字节8年测试经验,送给想要学习自动化测试的同学6条建议

    我的职业生涯开始和大多数测试人一样,开始接触都是纯功能界面测试。那时候在一家电商公司做测试,做了有一段时间,熟悉产品的业务流程以及熟练测试工作流程规范之后,效率提高了,工作比较轻松,也得到了更好的机会去发展。 到后来进阶自动化测试,再到测试开发

    2023年04月16日
    浏览(31)
  • 如何手动搭建自动化部署系统

    前两天写了个脚本帮助组内同学将本地构建产物上传至服务器,可以自动创建路径,监测是否存在历史版本,并将最新上传的产物替换历史版本,历史版本变为回溯版本。 核心就是: shell 脚本的复制 scp 指令。 sshpass 免交互 ssh 登录工具。 上面的脚本可以通过手动执行脚本,

    2024年02月11日
    浏览(50)
  • 工业平板电脑实现工厂自动化设备无需手动连接

    随着中国经济的快速发展和材料水平的不断提高,制造业的竞争日益激烈,市场竞静力逐渐转向质量、效率和价格服务,制造业企业面临更大的挑战,数据转型迫在眉睫。对工业平板电脑的需求也在增加,面向行业的工业平板电脑已成为新的趋势。 工业平板电脑在智能工厂中

    2023年04月25日
    浏览(50)
  • 自动化测试还是手动测试?深度探讨Web自动化测试的利与弊,精准性和可靠性抉择应如何。

     目录 前言: 1. 自动化测试的价值 2. 自动化测试的瓶颈 总结 随着互联网的飞速发展,Web应用越来越成为我们日常工作和生活中必不可少的一部分。这也就意味着,Web应用的质量和稳定性变得至关重要。而Web自动化测试作为保证Web应用质量的重要手段之一,同样随之变得越来

    2024年02月07日
    浏览(52)
  • Hyperledger Fabric网络环境手动配置及其链码自动化部署

    目录 5.1 网络环境的搭建 5.1.1 生成组织结构与身份证书 5.1.2 生成创世区块和通道 5.1.3 启动Fabric网络 5.1.4  创建Fabric-SDK-GO对象并建立通道 5.1.5  Fabric-SDK-Go实现链码的自动部署 5.2 链码实现 5.1.1 生成组织结构与身份证书 Hyperledger Fabric框架通过采用大量的证书确保系统交易(签名

    2023年04月22日
    浏览(36)
  • 快速手动完成 VS 编写脚本自动化:如何选取最高效的工作方式?

    那些不懂技术的朋友们可能会觉得,写代码写脚本不就是敲敲键盘嘛,搞那么高科技做什么,直接手工点点鼠标不就完事了。 这种看法很常见,但实际情况要复杂得多。 首先,手工操作虽然对于短期和小规模的任务来说似乎更快,但是它没法保证一致性和准确性,而且重复

    2024年02月20日
    浏览(27)
  • 字节跳动开源!超好用的视频抠图工具;GitHub开源项目维护协作指南;自动化数据清洗工具包;强化学习入门教程;前沿论文 | ShowMeAI资讯日报

    👀 日报合辑 | 📆 电子月刊 | 🔔 公众号下载资料 | 🍩 @韩信子 https://github.com/HelixNGC7293/DeforumStableDiffusionLocal https://space.bilibili.com/176003 文本提示作画工具。本代码库实现是本地版本的Deforum Stable Diffusion V0.4,支持txt设置文件输入和动画功能! https://github.com/PeterL1n/RobustVideoMat

    2023年04月08日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包