首页 > 解决方案 > Python-Requests:从 git 文件夹中获取所有文件

问题描述

我想从 github 存储库中获取所有文件(以及子目录和其中的文件)。我不想使用 git 包,因为这需要我安装 git(在 Windows 上,所以这不是自动的)。

愿意使用 urllib 或其他东西。我在python 2上。

我可以从这里获取单个文件<如何使用请求从 Github 下载和写入文件>:

filename = getcwd() + '\\somefile.txt'

url = 'https://raw.github.com/kennethreitz/requests/master/README.rst'

r=requests.get(url)

with open(filename,'w+') as f:
    f.write(r.content)

如何复制整个回购?

标签: pythongitpython-requests

解决方案


https://github.com/user/repo/archive/branch.zip您可以通过向url发出请求,将整个 github repo 下载为 .zip 文件。branch您要下载的分支的名称在哪里(通常是 master)。

例子:

import os

filename = os.path.join(os.getcwd(), 'repo.zip')
url = 'https://github.com/requests/requests/archive/master.zip'

r = requests.get(url)

with open(filename, 'wb') as f:
    f.write(r.content)

您还应该以二进制模式打开文件以防万一(使用 wb),因为它保存的是 .zip 文件。


推荐阅读