我试图遍历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
答案 0 :(得分:0)
我误会了照片循环的工作原理。我要打开的实际路径是两个循环的组合
sudo npm cache clean -f
sudo npm install -g n
sudo n stable