如何获取GitHub正确文件路径解决Colab加载arff报FileNotFoundError问题
问题原因
你遇到的问题同时包含路径错误和代码用法错误两个问题:
- 代码层面:Python内置的
open()函数仅支持读取本地文件系统中的文件,无法直接解析HTTP/HTTPS的网络链接,所以哪怕你输入的是有效文件直链,直接传给open()也会报错找不到文件。 - 路径层面:你从GitHub复制的permalink是文件的预览网页链接,不是ARFF文件本身的原始下载地址,返回的是HTML网页内容而非ARFF数据,就算用网络请求库读这个链接也拿不到有效数据。
解决方法
第一步:获取正确的原始文件路径
打开你复制permalink对应的GitHub页面,点击页面右上角的「Raw」按钮,跳转到新页面后复制地址栏的链接,该链接即为ARFF文件的原始直链,格式一般为https://raw.githubusercontent.com/用户名/仓库名/分支名/文件名.arff。
第二步:使用修正后的代码运行
这里提供两种常用的可直接在Colab运行的方案:
方案1:先下载文件到Colab本地再读取
!pip install arff import arff # 把后面的链接替换成你拿到的raw直链 !wget https://raw.githubusercontent.com/userName/repoName/combination_of_nums_and_letters/file_name.arff # 读取本地下载好的文件 uploaded = arff.load(open('file_name.arff'))
方案2:直接通过请求库读取网络内容无需下载到本地
!pip install arff requests import arff import requests from io import StringIO # 替换为你的raw直链 raw_url = "https://raw.githubusercontent.com/userName/repoName/combination_of_nums_and_letters/file_name.arff" response = requests.get(raw_url) response.raise_for_status() # 校验请求是否成功 # 解析ARFF内容 uploaded = arff.load(StringIO(response.text))
内容的提问来源于stack exchange,提问作者Roz
相关产品推荐
相关产品推荐

