Python加载图片列表后调用mpimg.imread出现FileNotFoundError求助
解决FileNotFoundError:读取图片时找不到文件的问题
你碰到的这个问题根源很清晰:你的load_data函数只把文件名存入了X_train和X_test列表,但没有保留文件所在的完整路径。当你调用mpimg.imread(X_train[10])时,Python会默认在当前工作目录下寻找这个文件,可图片实际在你指定的train_path目录里,所以才会抛出「找不到文件」的错误。
修正方案:存储文件的完整路径
修改你的load_data函数,使用os.path.join()把目录路径和文件名拼接成完整路径,这样后续读取时就能准确定位到文件了:
import os def load_data(train_path, test_path): X_train = [] X_test = [] # 拼接训练集文件的完整路径 for filename in os.listdir(train_path): full_file_path = os.path.join(train_path, filename) X_train.append(full_file_path) # 拼接测试集文件的完整路径 for filename in os.listdir(test_path): full_file_path = os.path.join(test_path, filename) X_test.append(full_file_path) return X_train, X_test
验证修正后的代码
调用修正后的函数,再读取图片就不会报错了:
# 替换成你实际的训练集、测试集路径 X_train, X_test = load_data("/path/to/your/train_set", "/path/to/your/test_set") img = mpimg.imread(X_train[10]) imgplot = plt.imshow(img) plt.show()
额外小技巧
如果想更稳妥,还可以用os.path.abspath()把拼接后的路径转为绝对路径,避免相对路径带来的潜在问题:
full_file_path = os.path.abspath(os.path.join(train_path, filename))
内容的提问来源于stack exchange,提问作者vidit02100
相关产品推荐
相关产品推荐

