为何通过VS Code连接的Google Colab内核无法访问本地机器文件?
解决VS Code连接Colab内核后无法读取本地文件的问题
嘿,我明白你遇到的困惑了——这其实是个很容易踩中的坑,咱们先把根儿上的问题说清楚:你连接的Colab内核是运行在Google的云端服务器上的,根本不是你本地的机器!
你在本地Python环境里能顺利读取./sample_data/sample.txt,是因为这个文件实实在在存在于你本地的文件系统中。但Colab内核的运行环境是完全独立的云端空间,它的文件系统和你的本地电脑没有任何关联,所以自然找不到你本地的文件路径。
下面给你几个实用的解决方案,按需选择就行:
方法1:直接把本地文件上传到Colab云端环境
这是最直接的方式,适合小文件:
- 在VS Code侧边栏打开Colab的文件浏览器(如果没显示,按
Ctrl+Shift+P/Cmd+Shift+P打开命令面板,搜索"Colab: Show File Browser") - 找到Colab默认的
sample_data文件夹,右键选择「上传」,把你的sample.txt传进去 - 之后再运行你原来的代码,就能正常读取文件了
- 也可以用代码触发上传:
from google.colab import files uploaded = files.upload()
运行后会弹出上传窗口,选中你的文件完成上传后,它会出现在Colab的当前工作目录,你可以手动移动到sample_data文件夹,或者直接修改代码路径读取。
方法2:挂载Google Drive实现持久化访问
如果文件比较大,或者不想每次都重复上传,挂载Google Drive更省心:
- 先运行这段代码完成授权挂载:
from google.colab import drive drive.mount('/content/drive')
- 跟着弹出的提示完成Google账号授权,之后你的Drive会被挂载到Colab的
/content/drive/MyDrive路径下 - 把你的
sample.txt放到Drive里的任意文件夹(比如MyDrive/sample_data/) - 修改代码里的文件路径为云端挂载路径:
with open("/content/drive/MyDrive/sample_data/sample.txt", 'r') as file: content = file.readlines() print(content)
这样就能稳定读取Drive里的文件,而且只要文件在Drive里不删除,下次连接Colab内核时也能直接访问。
最后再敲个重点:Colab内核本质是云端虚拟机,所有文件操作都是在云端的文件系统里进行,本地文件必须主动上传到云端,或者通过挂载Drive的方式让云端能访问到,内核才能读取到哦。
内容的提问来源于stack exchange,提问作者Mahir Tanzim
相关产品推荐
相关产品推荐

