2016-12-28 10 views
0

У меня есть куча изображений, которые я планирую использовать для чего-то, и было бы очень полезно, если бы я мог отсортировать их все, указав теги, которые может читать скрипт Python. Я пробовал несколько методов от this StackOverflow post, но ни один из них не возвратил нужные мне данные. Вот что я пытался:Python - Как перечислить теги из jpg EXIF ​​данных?

from PIL import Image 
import PIL.ExifTags 
import exifread 

dir = "C:\directory\\" 
image = "image_name.jpg" 
image_dir = dir + image 
img = Image.open(image_dir) 

#Attempt 1 - using PIL 
exif_data = img._getexif() 

print(exif_data) 

#Attempt 2 - using exifread 
f = open(image_dir) 
tags = exifread.process_file(f) 

print(tags) 

#Attemp 3 - using PIL 
exif = { 
    PIL.ExifTags.TAGS[k]: v 
    for k, v in img._getexif().items() 
    if k in PIL.ExifTags.TAGS 
} 

print(exif) 

Результаты немного длинный и грязный (попытка 1 возвращается очень длинный словарь с кучей повторять «\ x00 \», так что я не буду оставлять, что здесь):

  • Покушение 2 - {'Image XPKeywords': (0x9C9E) Byte=[] @ 30, 'EXIF Padding': (0xEA1C) Undefined=[] @ 2128, 'Image ExifOffset': (0x8769) Long=2110 @ 18, 'Image Padding': (0xEA1C) Undefined=[] @ 50}
  • Покушение 3 - {'ExifOffset': 2110, 'XPKeywords': 'e\x00x\x00a\x00m\x00p\x00l\x00e\x00;\x00t\x00e\x00s\x00t\x00\x00\x00'}

сами метки "пример" и "тест". Любые советы о том, что я могу сделать по-другому?

ответ

0

Возможно, вы захотите попробовать запустить это как скрипт Python 3. Я просто побежал вашу попытку # 1 код против

https://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg 

, и она работала, давая результаты:

{40963: 472, 305: 'Adobe Photoshop CS Windows', 274: 1, 40962: 709, 40961: 65535, 296: 2, 34665: 164, 282: (120, 1), 283: (120, 1), 306: '2005:10:13 15:32:07'} 

Примечание: Я использовал подушку, вилку из PIL из - http://pillow.readthedocs.io/en/3.1.x/installation.html