当您运行脚本KeyError:'EXIF DateTimeOriginal'时

问题描述 投票:6回答:1

我需要知道所拍摄图像数据的属性(日,时,小时,分钟,秒)

import exifread
import os
directoryInput=r"C:\tekstilshiki"
for filename in os.listdir(directoryInput):
    if filename.endswith('.jpg'):
        with open(r"%s\%s" % (directoryInput, "11.jpg"), 'rb') as image: # directory and name bleat
            exif = exifread.process_file(image)
            dt = str(exif['EXIF DateTimeOriginal'])
            # into date and time
            day, dtime = dt.split(" ", 1)
            hour, minute, second = dtime.split(":", 2)

当您运行脚本Goes错误

回溯(最近一次调用最后一次):文件“C:/tekstilshiki/ffd.py”,第8行,在dt = str中(exif ['EXIF DateTimeOriginal'])KeyError:'EXIF DateTimeOriginal'

我假设标签名称不正确

How can I read from all EXIF properties only the key time and the capture dateng

python exif
1个回答
0
投票

'exif'的每个瞬间可以包含不同的键,基于从图像中提取的内容,因此为了避免“KeyError”消息,您需要检查'exif'是否包含键“EXIF DateTimeOriginal”:

import exifread, os

directoryInput=r"C:\tekstilshiki"
for filename in os.listdir(directoryInput):
    if filename.endswith('.jpg'):
        with open(os.path.join(directoryInput, filename), "rb") as image: # Change "11.jpg" to filename variable
            exif = exifread.process_file(image)
            if "DateTimeOriginal" in exif:
                dt = str(exif["EXIF DateTimeOriginal"])
                # into date and time
                day, dtime = dt.split(" ", 1)
                hour, minute, second = dtime.split(":", 2)

P.S

虽然您已使用'os.listdir'查找所选目录中的所有文件,但在第6行中,您已对同一文件“11.jpg”进行了硬编码。

© www.soinside.com 2019 - 2024. All rights reserved.