我试图遍历由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
我误解了照片循环是如何工作的。我想打开的实际路径是两个循环的组合
img = Image.open(folder + "/" + photo)