我需要按拍摄日期提取和整理照片。 Windows 10,Python 2.7。我一直这样做
from PIL import Image
def get_date_taken(path):
return Image.open(path)._getexif()[36867]
以下:
Get date and time when photo was taken from EXIF data using PIL
这适用于某些照片。
大。现在抓取一组不同的图像,新相机,属性看起来很相似。
但是dict完全不同
Image.open(image)._getexif()[36867]
Traceback (most recent call last):
Debug Probe, prompt 369, line 1
KeyError: 36867
Image.open(image)._getexif()
{36864: '0220', 37121: '\x01\x02\x03\x00', 40962: 2048, 40963: 1536, 40960: '0100', 40961: 1, 296: 2, 34665: 90, 34855: 1600, 531: 2, 282: (72, 1), 283: (72, 1), 37500: '\x01\xf1\x03\x00\x03\x00\x00\x00\x11 ....
我也试过exifread
a=exifread.process_file(open(image,'rb'))
a.keys()
['EXIF MakerNote', 'Image ExifOffset', 'EXIF ExposureTime', 'EXIF ComponentsConfiguration', 'Image YCbCrPositioning', 'Image XResolution', 'EXIF FlashPixVersion', 'EXIF ISOSpeedRatings', 'Image YResolution', 'EXIF ColorSpace', 'EXIF ExifImageLength', 'EXIF ExifVersion', 'Image ResolutionUnit', 'EXIF ExifImageWidth']
但没有约会。什么是Windows阅读python不是?关于还有什么可以尝试的任何建议,我是否需要担心跨平台?与此处相同的问题:
但是在python中。这个友好的在线元数据查看器
http://exif.regex.info/exif.cgi
建议两个图像都在exif中创建日期。怎么去访问它们?
示例有问题的图片是here
答案 0 :(得分:2)
我使用exifread库做到了。这是我的python代码片段。
import exifread
for filename in os.listdir(directoryInput):
if filename.endswith('.JPG'):
with open("%s/%s" % (directoryInput, filename), 'rb') as image: # file path and name
exif = exifread.process_file(image)
dt = str(exif['EXIF DateTimeOriginal']) # might be different
# segment string dt into date and time
day, dtime = dt.split(" ", 1)
# segment time into hour, minute, second
hour, minute, second = dtime.split(":", 2)