循环收集iPhoto MetaData找不到文件

时间:2019-04-26 04:24:20

标签: python python-imaging-library

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

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

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

为什么会出现此错误?我该如何解决?我不确定循环本身生成要搜索的文件名时文件怎么不存在

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

1 个答案:

答案 0 :(得分:0)

我误会了照片循环的工作原理。我要打开的实际路径是两个循环的组合

sudo npm cache clean -f sudo npm install -g n sudo n stable