使用 PIL.Image._getexif() 访问 exif 信息时遇到问题
Trouble accessing exif information with PIL.Image._getexif()
我正在尝试从“.nef”文件中提取 exif 信息,以便根据检索到的数据自动将文件分类到文件夹中。
根据我的阅读,PIL 似乎是将信息输入 Python 的不错选择。
我已经安装了 PIL,它可以正确导入,PIL.Image 模块也是如此。
当我尝试调用 'PIL.Image._getexif()'
时出现问题
from PIL import Image
from PIL.ExifTags import TAGS
firstfile = 'link to file'
exif = Image._getexif(firstfile)
得到这个错误:
AttributeError: 'module' object has no attribute '_getexif'
较长版本的代码也会出现错误:
def get_exif(fn):
ret = {}
i = Image.open(fn)
info = i._getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
Image.close(fn)
return ret
exifinfo = get_exif(firstfile)
这失败了:
AttributeError: _getexif
可能是我PIL安装错了?为什么无法调用“_getexif()”?
备注:
直接搜索 "AttributeError: 'module' object has no attribute '_getexif'" 的唯一 google 结果 old/404 没有帮助,这让我相信这不是一个常见的问题。
看来 PIL 不是我想要完成的目标的合适模块。
我能够通过使用 PyExifTool 从 nef 文件中提取 EXIF 信息来实现我的目的(根据 EXIF 信息对文件夹中的项目进行排序)。
如果您坚持使用 PIL,下面是一个工作片段,但似乎有更好的模块可以产生更多结果。
https://pypi.org/project/exif/
from PIL import Image
from PIL.ExifTags import TAGS
ret = {}
with Image.open(img_path) as file:
info = file.getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
return ret
我正在尝试从“.nef”文件中提取 exif 信息,以便根据检索到的数据自动将文件分类到文件夹中。
根据我的阅读,PIL 似乎是将信息输入 Python 的不错选择。
我已经安装了 PIL,它可以正确导入,PIL.Image 模块也是如此。
当我尝试调用 'PIL.Image._getexif()'
时出现问题from PIL import Image
from PIL.ExifTags import TAGS
firstfile = 'link to file'
exif = Image._getexif(firstfile)
得到这个错误:
AttributeError: 'module' object has no attribute '_getexif'
较长版本的代码也会出现错误:
def get_exif(fn):
ret = {}
i = Image.open(fn)
info = i._getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
Image.close(fn)
return ret
exifinfo = get_exif(firstfile)
这失败了:
AttributeError: _getexif
可能是我PIL安装错了?为什么无法调用“_getexif()”?
备注: 直接搜索 "AttributeError: 'module' object has no attribute '_getexif'" 的唯一 google 结果 old/404 没有帮助,这让我相信这不是一个常见的问题。
看来 PIL 不是我想要完成的目标的合适模块。
我能够通过使用 PyExifTool 从 nef 文件中提取 EXIF 信息来实现我的目的(根据 EXIF 信息对文件夹中的项目进行排序)。
如果您坚持使用 PIL,下面是一个工作片段,但似乎有更好的模块可以产生更多结果。
https://pypi.org/project/exif/
from PIL import Image
from PIL.ExifTags import TAGS
ret = {}
with Image.open(img_path) as file:
info = file.getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
return ret