读取EXIF会出错

时间:2013-06-26 13:51:38

标签: python-3.x imagemagick wand

我正在尝试打印图像的EXIF。 这是我的代码:

with Image(filename="/home/hapoofesgeli/Desktop/b.jpg") as image:
    for k, v in image.metadata.items():
        if k.startswith('exif:'):
            print(k, v)

但它给出了一个错误:

Traceback (most recent call last):
  File "/home/hapoofesgeli/Programming/Test/Test.py", line 5, in <module>
    for k, v in image.metadata.items():
  File "/usr/lib/python3.3/collections/abc.py", line 480, in __iter__
    yield (key, self._mapping[key])
  File "/usr/lib/python3.3/site-packages/wand/image.py", line 2260, in __getitem__
    raise TypeError('k must be a string, not ' + repr(format))
TypeError: k must be a string, not <built-in function format>

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

你应该使用PIL图像模块中捆绑的_getexif()方法:

>>> image = Image.open(os.getcwd() + '/canon-ixus.jpg')
>>> image._getexif()
{36864: '0210', 37121: '\x01\x02\x03\x00', .... }

image.info['exif']

>>> image.info['exif'][0:20]
'Exif\x00\x00II*\x00\x08\x00\x00\x00\t\x00\x0f\x01\x02\x00'