如何用Python稳定访问GitHub私有仓库中的.txt文件?
稳定访问GitHub私有仓库中.txt文件的方法
你的问题出在认证方式不对,GitHub的Personal Access Token(PAT)不能直接用HTTP基本认证(auth=(user, pat))访问raw文件,需要用Bearer授权头或正确的参数传递方式,同时要确保PAT拥有足够权限。
下面是两种可靠的实现方式:
方法一:使用Authorization请求头(推荐)
这是GitHub官方推荐的认证方式,安全性更高。
import requests # 替换成你的PAT和文件的raw地址 pat = "github_pat_123456789abcdefg" file_url = "https://raw.githubusercontent.com/你的用户名/仓库名/分支名/文件路径/file.txt" # 构造请求头,添加token前缀 headers = {"Authorization": f"token {pat}"} response = requests.get(file_url, headers=headers) # 检查请求是否成功,避免静默失败 response.raise_for_status() file_content = response.text print(file_content)
方法二:将PAT作为URL参数(兼容旧方式)
虽然不如请求头方式安全,但也可以正常工作:
import requests pat = "github_pat_123456789abcdefg" base_url = "https://raw.githubusercontent.com/你的用户名/仓库名/分支名/文件路径/file.txt" # 拼接token参数 file_url = f"{base_url}?access_token={pat}" response = requests.get(file_url) response.raise_for_status() file_content = response.text print(file_content)
关键注意事项
- PAT权限:创建PAT时必须勾选
repo权限(私有仓库访问必备),否则会返回403或404错误。 - URL正确性:确认raw地址的分支名(比如
main或master)、文件路径完全正确,路径错误也会导致404。 - PAT有效期:创建PAT时可以设置为「永久」,避免频繁失效,无需每隔一段时间更换。
内容的提问来源于stack exchange,提问作者prismarine
相关产品推荐
相关产品推荐

