Google Colab多人协作:上传文件无法被其他协作者访问求助
嘿,这个坑我之前踩过!你用files.upload()上传的文件其实是存在当前会话的Colab虚拟机实例里的——而Colab给每个协作者打开笔记本时都会分配独立的虚拟机,所以你上传的文件只在你的实例里,别人的实例根本没有这个文件,自然会报错。
给你几个简洁的解决方案,按推荐程度排序:
优先用Google Drive挂载(长期协作首选)
把文件存在共享的Google Drive文件夹里,所有人挂载Drive后都能访问,还能永久保存(不会因为虚拟机重启丢失)。执行这段代码挂载Drive:from google.colab import drive drive.mount('/content/drive')挂载完成后,你可以把需要共享的文件上传到Drive的共享文件夹里,协作者只要有这个Drive文件夹的访问权限,就能通过
/content/drive/MyDrive/[你的共享文件夹路径]来读取文件,完全不会有权限问题。小文件直接嵌入笔记本(临时应急)
如果是几百KB以内的小文本文件,可以直接把文件内容写进代码单元格里,比如:# 把文件内容写入本地(所有协作者运行这段代码都会生成文件) with open('test.txt', 'w', encoding='utf-8') as f: f.write('这里是你的文件内容')这个方法适合临时共享极小文件,大文件就别用了,会让笔记本变得臃肿。
Colab文件面板共享(临时会话用)
在Colab左侧的「文件」面板里,右键点击你上传的文件,选择「Share」,然后给协作者设置对应的访问权限(编辑/查看)。不过要注意:这个文件还是存在你的虚拟机里,一旦你的会话断开(比如闲置太久),文件就会消失,而且协作者需要重新加载会话才能看到,稳定性不如Drive挂载。
另外提醒下:files.upload()本身就是临时存储,不管有没有协作,虚拟机重启后文件都会被清除,所以长期协作一定要依赖Google Drive的持久化存储~
内容的提问来源于stack exchange,提问作者whisperer

