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

如何通过GitHub脚本直接读取OSF上的CSV文件(无需本地下载)

解决方案:无需本地副本直接读取OSF公共CSV文件

要直接读取OSF上的公共CSV文件,核心是使用文件的原始下载直链,而非文件的网页链接。以下是两种简单可行的方法:

方法1:直接使用正确的OSF直链读取

OSF公共文件的原始下载直链格式为:https://osf.io/download/[文件节点ID]/,其中[文件节点ID]是你在文件页面URL中看到的最后一段字符(比如你案例中的74y5r)。

# 替换为你的文件对应的直链
osf_direct_url <- "https://osf.io/download/74y5r/"

# 直接读取CSV内容
test <- read.csv(osf_direct_url)

如果遇到HTTPS连接问题,可借助httr包先获取文件文本内容再读取:

library(httr)

# 获取文件内容
resp <- GET(osf_direct_url)
# 从文本内容读取CSV
test <- read.csv(text = content(resp, "text"))

方法2:使用osfr包获取直链后读取

如果你偏好使用osfr包,可以通过检索文件获取其下载直链,再直接读取,无需下载本地副本:

library(osfr)

# 用文件的短URL或节点ID检索文件
target_file <- osf_retrieve_file("https://osf.io/74y5r/")

# 获取文件的原始下载直链
download_url <- osf_get_url(target_file, type = "download")

# 直接读取CSV
test <- read.csv(download_url)

你之前操作失败的原因说明

  1. URL格式错误:你使用的/files/开头的URL是文件的网页链接,read.csv会读取网页的HTML代码而非CSV内容;带?action=download的URL格式不符合OSF的下载规则,且多了一个冗余的斜杠导致请求错误。
  2. osfr包使用不当:osf_download()是将文件下载到本地的函数,若本地已有同名文件会触发冲突错误;你需要的是获取直链后直接读取,而非下载文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 20:18:10