1

我正在尝试打印图像的 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>

如何解决这个错误?

4

1 回答 1

0

您应该使用_getexif()捆绑在 PIL 的 Image 模块中的方法:

>>> 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'
于 2013-06-26T14:40:44.907 回答