在Google Colab R内核中挂载谷歌云盘读取XLSX文件失败求助
在Google Colab R内核中挂载Google Drive并读取XLSX文件的解决方案
推荐方法:使用Colab原生挂载(通过Python调用)
这种方法更稳定,无需折腾R包的认证逻辑,步骤如下:
- 安装并加载
reticulate包,调用Colab的Python挂载工具:
install.packages("reticulate") library(reticulate) # 执行Python挂载代码 py_run_string(" from google.colab import drive drive.mount('/content/drive') ")
执行后会弹出授权窗口,按提示完成账号授权。挂载成功后,你的Google Drive文件会映射到/content/drive/MyDrive/路径下。
- 安装
readxl包并读取目标XLSX文件:
install.packages("readxl") library(readxl) # 注意路径需加上MyDrive前缀 df <- read_excel("/content/drive/MyDrive/OptimaTEST/data/data.xlsx") # 验证读取结果 head(df)
备选方案:修复googledrive包的认证问题
如果坚持使用googledrive包操作,可按以下步骤修复认证错误:
- 安装并加载依赖包:
install.packages(c("googledrive", "gargle", "R.utils", "httr")) library(googledrive) library(gargle) library(R.utils) library(httr)
- 强制设置会话为交互式模式(解决Colab R内核被识别为非交互式的问题):
# 重写httr包的交互式检测函数 my_check <- function() {return(TRUE)} reassignInPackage("is_interactive", pkgName = "httr", my_check) # 启用rlang交互式选项和gargle的OOB模式 options(rlang_interactive = TRUE) options(gargle_oob_default = TRUE)
- 重新执行认证:
drive_auth(cache = FALSE)
执行后会生成授权链接,复制到浏览器打开,登录Google账号并授权,将得到的验证码复制回Colab输入框完成认证。
- 认证成功后,可下载文件到Colab环境再读取:
# 查找目标文件 target_file <- drive_find(path = "OptimaTEST/data/data.xlsx") # 下载文件到Colab本地 drive_download(target_file, path = "./data.xlsx", overwrite = TRUE) # 读取文件 df <- read_excel("./data.xlsx")
注意事项
- 挂载后的Drive路径必须包含
MyDrive前缀,这是多数人找不到文件的核心原因。 - 使用
googledrive包时,确保Google账号已授权该应用访问Drive权限。
内容的提问来源于stack exchange,提问作者sermomon
相关产品推荐
相关产品推荐

