我是Python的完全新手,想通过实践来学习它。特别是,我想纠正一些我拥有的大量家庭照片中的EXIF信息。首先,我想正确地从JPEG文件中获取此信息。
其中一些文件中有EXIF中写的标题。可以通过以下方式获取该标题:
这是我目前为止的进展。现在遇到了问题。一些标题包含西里尔字母。如果我执行
当使用
import pyexiv2
metadata = pyexiv2.ImageMetadata(filename)
metadata.read()
title = metadata['Exif.Image.XPTitle']
这是我目前为止的进展。现在遇到了问题。一些标题包含西里尔字母。如果我执行
print title.human_value
,例如,我会得到`Милой Мамуле от Майи, 11 ÑÐ½Ð²Ð°Ñ€Ñ 1944.`
当使用
print title
时,它是这样的:<Exif.Image.XPTitle [Byte] = 28 4 56 4 59 4 62 4 57 4 32 0 28 4 48 4 60 4 67 4 59 4 53 4 32 0 62 4 66 4 32 0 28 4 48 4 57 4 56 4 44 0 32 0 49 0 49 0 32 0 79 4 61 4 50 4 48 4 64 4 79 4 32 0 49 0 57 0 52 0 52 0 46 0 0 0>
The actual string I'd love to see is
Милой Мамуле от Майи, 11 января 1944.
看起来是一个Unicode问题,但是在这里和其他地方尝试了十几种不同的方法后,我就是无法解决它。是否有可能在控制台中看到俄文字母?我正在使用Windows 7(英语)上的python(xy),所以我的IDE是spyder2。只是默认安装,我添加了pyexiv2。谢谢!
type(title.human_value)
和[ord(x) for x in title.human_value]
分别返回什么? - Russell Borogove<type 'str'>
和[208, 156, 208, 184, 208, 187, 208, 190, 208, 185, 32, 208, 156, 208, 176, 208, 188, 209, 131, 208, 187, 208, 181, 32, 208, 190, 209, 130, 32, 208, 156, 208, 176, 208, 185, 208, 184, 44, 32, 49, 49, 32, 209, 143, 208, 189, 208, 178, 208, 176, 209, 128, 209, 143, 32, 49, 57, 52, 52, 46]
- texnic