#python
#python
Вопрос:
У меня проблемы с импортом файлов jpg в мой каталог. Я использовал приведенный ниже код, но когда я запускаю im.show(), он говорит, что im не определен. Кроме того, ничего не отображается для печати (имя файла) что я должен сделать, чтобы решить эту проблему?
from PIL import Image
import glob
image_list = []
for filename in glob.glob('C:UsersIvansdataset*.jpg'):
print(filename)
im=Image.open(filename)
image_list.append(im)
Комментарии:
1. возможно, ваш глобус не получает никаких файлов. Я бы проверил правильность вашего пути, возможно, используйте pathlib, чтобы помочь вам с обработкой с путями
2. Я бы использовал os.listdir(), чтобы перечислить все ваши изображения.
3. Либо используйте
r"C:Users..."
, либо экранируйте обратную косую черту.glob
Может отображаться другой путь, чем тот, который, по вашему мнению, вы вставляете в него… Также я считаю, что это должно бытьC:\Users...
Ответ №1:
При использовании обратной косой черты Windows рассмотрите возможность использования необработанной строки, чтобы избежать синтаксического анализа экранированных символов, т.е.
for filename in glob.glob(r'C:UsersIvansdataset*.jpg'):
Ответ №2:
не уверен, что это правильно, но вы можете попробовать использовать os.listdir
from PIL import Image
import glob
import os
image_list = []
dir = 'dir'
for filename in os.listdir(dir):
print(filename)
im=Image.open(f"{dir}/{filename}")
image_list.append(im)
Комментарии:
1. да, я это исправил
2. Нет, я имею в виду, если вы не считаете, что это правильно, не публикуйте его. Проверьте свой код и убедитесь, что он работает. Или, по крайней мере, не пишите это в своем ответе…
3. В любом случае, мне кажется правильным… Может быть, я бы предпочел использовать
filename = os.path.join(dir, filename)
вместо форматирования строки4. Также обратите внимание, что операционный код выполняет итерацию только по
.jpg
файлам, поэтому вы можете добавитьif filename.endswith("jpg")