matplotlib не может открыть файл * .jpg - PullRequest
0 голосов
/ 11 октября 2018

У меня есть * .jpg изображения в каталоге «dogs», и я могу получить доступ к первому, как показано ниже:

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'

Я пытался открыть собаку с подушкой, но она выдает ту же ошибку.

, однако, я могу прочитать 'dog.5535.jpg', если я помещу изображениена моем рабочем столе и укажите этот путь к plt.imread().Я что-то упустил?

Спасибо

1 Ответ

0 голосов
/ 11 октября 2018

Из этих строк:

dog=os.listdir(os.path.join(cwd,'valid/dogs'))[0]
print (dog)
#OUT: dog.5535.jpg

похоже, что существует файл dog.5535.jpg с полным относительным путем (по отношению к текущему рабочему каталогу), равным 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)

Обратите внимание, что я также изменил часть valid/dogs в функции path.join, указав разделители пути в аргументе дляpath.join вид превосходит смысл использования path.join

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...