我在目录“ dogs”中有* .jpg图片,我可以按如下方式访问第一个图片:
import os
os.chdir(os.path.expanduser('~/fastai/data/dogscats'))
cwd=os.getcwd()
dog=os.listdir(os.path.join(cwd,'valid/dogs'))[0]
print (dog)
dog.5535.jpg
问题是当我尝试使用matplotlib绘制图像时无法 找到图片:
%matplotlib inline
import matplotlib.pyplot as plt
plt.imread(dog)
FileNotFoundError: [Errno 2] No such file or directory: 'dog.5535.jpg'
我试图用枕头打开狗,但它给出了相同的错误。
但是,如果我将图像放在桌面上并将该路径指定为plt.imread()
,则可以读取“ dog.5535.jpg”。我想念什么吗?
谢谢
答案 0 :(得分:2)
从这些行:
dog=os.listdir(os.path.join(cwd,'valid/dogs'))[0]
print (dog)
#OUT: dog.5535.jpg
似乎有一个文件dog.5535.jpg
,其完整的相对路径(当前工作目录为w.r.t.)是valid/dogs/dog.5535.jpg
。但是,dog
变量仅包含文件名。因此,当您尝试
%matplotlib inline
import matplotlib.pyplot as plt
plt.imread(dog)
它将在当前工作目录中查找dog.5535.jpg
,而不是文件所在的目录。来自cwd,您仍然必须添加其余路径:
%matplotlib inline
import matplotlib.pyplot as plt
plt.imread(dog)
os.path.join('valid', 'dogs', dog)
#or os.path.join(cwd, 'valid', 'dogs', dog)
请注意,我还更改了path.join函数中的valid/dogs
部分,因为在path.join
的参数中指定了路径分隔符比使用path.join