Google Colab中glob函数返回空列表本地Jupyter运行正常如何解决
Colab运行代码返回空列表的解决方法
问题原因
本地Jupyter运行在你自己的电脑上,可以直接读取本地C盘的文件;而Google Colab是运行在谷歌远端云服务器上的服务,无法直接访问你本地电脑的磁盘内容,你代码中填写的Windows本地路径在Colab的服务器环境中不存在,glob无法匹配到任何jpg文件,因此返回空列表。
解决步骤
步骤1:挂载Google云端硬盘
在Colab中先运行以下代码,挂载你自己的Google Drive作为存储介质,运行时按照提示完成账号授权即可:
from google.colab import drive drive.mount('/content/drive')
挂载完成后,你的Google Drive所有内容都会映射到Colab的/content/drive/MyDrive/路径下。
步骤2:上传数据集到Google Drive
把你本地的dataset_new整个文件夹上传到Google Drive的对应目录下,比如上传到Drive根目录,那么该文件夹在Colab中的路径就是/content/drive/MyDrive/dataset_new。
步骤3:修改代码中的路径
把原来的Windows本地路径替换为Colab环境中的实际路径,修改后的代码示例如下:
import glob,cv2 cv_img = [] # 路径需和你实际上传的位置保持一致 for img in glob.glob(r'/content/drive/MyDrive/dataset_new/test/yawn/*.jpg'): n= cv2.imread(img) cv_img.append(n) print(cv_img)
补充注意事项
- Colab的文件路径区分大小写,要确保代码里的路径拼写、文件夹/文件名的大小写和实际存储的完全一致
- 如果只是临时测试小数据集,也可以直接把数据集拖到Colab左侧文件面板的
/content目录下,该路径为临时存储,Colab实例断开重启后文件会自动清除 - 如果修改路径后依然返回空列表,可以先运行
!ls /content/drive/MyDrive/dataset_new/test/yawn命令,查看对应路径下是否能正常列出所有jpg文件,排查路径拼写错误
内容的提问来源于stack exchange,提问作者Yoga Srinivas Reddy
相关产品推荐
相关产品推荐

