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

Фак*_*Том 6 python exif

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

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)
Run Code Online (Sandbox Code Playgroud)

当您运行脚本Goes错误

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

我假设标签名称不正确

如何只从关键时间和捕获日期中读取所有EXIF属性

Yog*_*ann 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)
Run Code Online (Sandbox Code Playgroud)

聚苯乙烯

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