Найти, если изображение имеет EXIF ​​или нет

Можно ли определить, содержит ли изображение exif-данные или нет? Я попытался использовать pyexiv2 следующим образом:

import pyexiv2 as pex
pex.metadata("test.jpg")
metadata.read()
print metadata.exif_keys

Теперь, если данные EXIF ​​отсутствуют, в последней строке будет напечатан пустой список. Это единственный способ сделать это или я могу сделать это любым другим способом.

3 ответа

Решение, не связанное с Python, но которое может быть полезно для тех, кто, как и я, попадает сюда из поиска.

Используйте непосредственно в оболочке:

      exiftool -exif -if '$exif' $YourFile

В -Exifсобственность, предоставленная exiftoolочевидно, существует только в том случае, если файл имеет метаданные Exif. В -ifусловие даст ненулевой статус выхода, если свойство не существует.

В зависимости от того, содержит ли файл часть Exif, он будет выводить что-то вроде

EXIF : (Binary data 23929 bytes, use -b option to extract)

или же

1 files failed condition

Чтобы использовать его в скрипте и просто использовать код выхода без каких-либо выходных данных из самого exiftool:

      if exiftool -exif -if '$exif' "$YourFile" >/dev/null; then
    echo "Yes. Exif found in $YourFile"
else
    echo "No Exif in $YourFile"
fi

Не совсем уверен, так как я никогда не использовал этот модуль или играл с изображениями, в этом отношении. Вы не можете просто сделать что-то подобное? Я посмотрел на документацию и там написано, что metadata.exif_keys это список. Кажется, вам нужно только проверить, пуст ли список.

if metadata.exif_keys:
    print(metadata.exif_keys)

pyexiv2 хороший инструмент для манипулирования данными EXIF. Так что, если вы спрашиваете с точки зрения развития, то у вас есть ответ прямо здесь, и я не уверен, что именно вы ищете. Вы просто хотите, чтобы инструмент вручную проверял, содержит ли изображение данные EXIF?

Тогда я бы порекомендовал exif-py - действительно простой скрипт, который четко отображает данные, если они существуют, и сообщает, что их нет.

Другие вопросы по тегам