Colab运行报FileNotFoundError找不到labelfile_path无法打开CSV标签文件求助
问题排查与解决方案
错误原因
- 直接报错原因:最后一行
open函数传入的是字符串"labelfile_path",而不是你之前定义的路径变量labelfile_path,引号把变量名变成了固定字符串,系统会去查找名为labelfile_path的文件,自然找不到。 - 路径拼接错误:你构造
labelfile_path时使用了未定义的变量pspifiles[j],你前文定义的存储标签文件名的变量是labelfiles,不存在pspifiles这个变量,会直接导致路径生成错误。 - 目录读取逻辑错误:
os.chdir()的返回值为None,你将FolderA、FolderB赋值为os.chdir()的执行结果,后续os.listdir(FolderA)等价于os.listdir(None),只会读取当前工作目录的内容,而非你预期的1_Trainlabel目录内容,会导致后续拼接的路径全部错误。 - Shell命令使用不规范:Colab中使用
!ls(路径)的写法容易因为路径空格、特殊字符出现解析异常,推荐直接使用Python原生的os.listdir()读取目录内容,避免不必要的解析错误。
修正后代码示例
import os # 直接定义目录路径,不要用os.chdir赋值 label_root = '/content/gdrive/My Drive/Data/Train/1_Trainlabel/' img_root = '/content/gdrive/My Drive/Data/Train/1_Trainimage/' a = os.listdir(label_root) for k in range(len(a)): Label_folder = os.path.join(label_root, a[k]) img_folder = os.path.join(img_root, a[k]) # 用os.listdir替代!ls命令 folders = os.listdir(Label_folder) for i in range(len(folders)): foldername = folders[i] Label_folder1 = os.path.join(Label_folder, foldername) img_folder1 = os.path.join(img_folder, foldername) imgfiles = os.listdir(img_folder1) labelfiles = os.listdir(Label_folder1) for j in range(len(labelfiles)): # 替换不存在的pspifiles为labelfiles labelfile_path = os.path.join(Label_folder1, labelfiles[j]) imgfile_path = os.path.join(img_folder1, imgfiles[j]) # 去掉变量名外的引号,直接传路径变量 labelfile = open(labelfile_path, "r") # 后续处理逻辑记得关闭文件,或者用with open更安全
小提示:文件读写更推荐用
with open(labelfile_path, 'r') as labelfile:的写法,会自动处理文件关闭,避免资源泄漏。
内容的提问来源于stack exchange,提问作者Math Researcher
相关产品推荐
相关产品推荐

