循环收集iPhoto MetaData找不到文件

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

我试图遍历由Mac的iPhoto创建的目录中的所有照片,并创建包含每个照片元数据的列表。

iPhoto将所有视频和图像存储在名为db的文件夹中。我收集了db的所有子目录并将它们存储在folders列表中

当我遍历folders列表并尝试收集元数据(exif)时,我收到一个错误,告诉我该文件不存在。我不确定那是怎么回事,因为我没有给循环任何文件名。当我计算循环的实例时,我得到预期数量的照片。我只是很难在照片上循环收集meta。

为什么我收到此错误?我怎么解决?当循环本身生成要搜索的文件名时,我不确定文件是如何存在的

from PIL import Image
import os

db = "/Users/Scott/Pictures/Photos Library.photoslibrary/Masters/"

folders = []
for i, j, y in os.walk(db):
    folders.append(i)

num = 0
meta_data = []

for folder in folders:
    for photo in os.listdir(folder):
        if photo.endswith(".JPG") or photo.endswith(".PNG") or photo.endswith(".jpg"):
            num = num + 1
            img = Image.open(photo)
            meta = img.getexif()
            meta_data.append(meta)


print(num)
print(len(meta_data))

Traceback (most recent call last):
  File "/Users/Scott/PycharmProjects/EXIF/EXIT.py", line 29, in <module>
    img = Image.open(photo)
  File "/Users/Scott/PycharmProjects/EXIF/venv/lib/python3.7/site-packages/PIL/Image.py", line 2652, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'IMG_0438.JPG'

Process finished with exit code 1

mac os,PyCharm,Python3

python python-imaging-library
1个回答
0
投票

我误解了照片循环是如何工作的。我想打开的实际路径是两个循环的组合

img = Image.open(folder + "/" + photo)

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