如何从 GitHub 获取更改文件

问题描述 投票:0回答:1

我想从 GitHub 存储库的发布页面下载文件。我不知道该怎么做。目前我的代码是

#import libraries
import requests
import zipfile
import io

#define the link to the latest GTNH version
GTNHLink = "https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/releases/latest"

#get the path to the old file
OriginalFilePath = "C:\\Users\\********\\CurseforgeUtils\\GTNHAutoUpdate\\GTNHOld.zip"

#download and save the new file
NewFileContent = requests.get(GTNHLink)
NewFile = zipfile.ZipFile(io.BytesIO(NewFileContent.content))
NewFile.close

但是(我假设)因为页面上有多个文件,所以它没有给我我想要的 zip 文件。我该如何解决这个问题?我发现它的主要问题是文件名会随着新版本的发布而改变。

python python-3.x python-requests
1个回答
0
投票

您可以获取

assets
字段中的文件列表,然后您可以迭代列表来查找
.zip
文件。

response = requests.get(api_url)

if response.status_code == 200:
    release_data = response.json()
    assets = release_data.get('assets', [])

    for asset in assets:
        if asset['name'].endswith('.zip'):
            download_url = asset['browser_download_url']
            file_response = requests.get(download_url)
            print(file_response.content)
            with open(OriginalFilePath, "wb") as file:
                file.write(file_response.content)
            break
© www.soinside.com 2019 - 2024. All rights reserved.