You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python/PyGithub获取GitHub仓库文件名?无密码如何调用登录方法?

如何用PyGithub在不登录的情况下获取GitHub仓库文件名列表?

好问题!咱们拆成两个核心部分来解答:

1. 不登录获取公开仓库的所有文件名列表

对于公开仓库,GitHub允许未认证的API访问(有请求次数限制,每小时60次,足够大多数小场景使用),所以完全不需要登录账号就能用PyGithub获取文件列表。

步骤:

首先确保你已经安装了PyGithub:

pip install pygithub

然后用匿名模式初始化Github对象,递归遍历仓库的文件和目录:

from github import Github

# 匿名初始化,不需要任何账号信息
g = Github()

# 替换成你要访问的仓库(格式:用户名/仓库名)
target_repo = g.get_repo("octocat/Hello-World")

def collect_all_files(repo, current_path=""):
    file_paths = []
    # 获取当前路径下的所有内容
    contents = repo.get_contents(current_path)
    for item in contents:
        if item.type == "file":
            # 如果是文件,记录完整路径
            file_paths.append(item.path)
        elif item.type == "dir":
            # 如果是目录,递归遍历子目录
            file_paths.extend(collect_all_files(repo, item.path))
    return file_paths

# 调用函数获取所有文件名
all_files = collect_all_files(target_repo)

# 打印结果
for file in all_files:
    print(file)

这段代码会递归遍历仓库的所有子目录,把所有文件的完整路径都收集起来。

2. 仅知用户名时,能否调用github.Github(login, password)?

答案是不行。

github.Github(login, password)这个构造方法是用来做账号密码基本认证的,GitHub要求必须同时提供有效的用户名和密码才能通过认证——只有用户名没有密码的话,根本无法完成身份验证,自然没法用这个方式初始化。

如果你的需求是访问私有仓库,那必须要有该仓库的访问权限,这时候可以用**个人访问令牌(PAT)**替代密码,初始化方式是:

# 用PAT令牌初始化,不需要密码
g = Github("你的个人访问令牌")

但要注意,生成PAT需要你拥有账号的登录权限(也就是知道密码),或者仓库所有者给你颁发了授权令牌。如果既没有密码也没有PAT,那只能访问公开仓库,用第一部分的匿名方式就够了。

内容的提问来源于stack exchange,提问作者stan25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:21:53