Как получить имя файла PIL-изображения?

#python #image

#питон #изображение

Вопрос:

 from PIL import Image

img = Image.open("pic_1.png")
print(img.filename) #pic_1.png
#actual outcome:
#AttributeError: 'Image' object has no attribute 'get_filename'
 

Я работаю над Python 3.8.

Комментарии:

1. Почему бы вам не сохранить строку в переменной в начале, а затем выполнить Image.open(изображение), а затем вы можете просто использовать эту переменную позже

2. Привет, Люк, я отправляю PIL-образ в сокет сервера в виде эха. Я не хочу отправлять имя файла, поэтому, когда я получу файл обратно, я хотел бы извлечь его файл с именем.

3. @Maya вероятно, когда изображение сериализуется через pickle.dumps(...) его атрибут filename, оно удаляется. Поэтому вы должны отправить кортеж (img.filename, img) на сервер.

4. Значит, вы не отправляете имя файла на сервер вместе с изображением, но ожидаете, что сервер отправит его вам обратно?

5. @MarkSetchell Похоже, что Maya отправляет только маринованный img файл на сервер. Я проверил, что img у него есть допустимый атрибут .filename перед травлением, но после травления удаления этот атрибут исчезает, остаются только данные изображения RGB, поэтому PIL не удаляет некоторые атрибуты, такие как filename.