我命名了文件夹中的所有文件,但是当我运行代码时,它只是不返回任何内容作为文件的filename属性
if __name__ == '__main__':
print("Your Program Here")
images = glob.glob("uncropped/*.jpg")
for image in images:
with open(image, 'rb') as file:
img = Image.open(file)
print(img.filename)
print("open")
input()
此代码不返回任何文件名。我该怎么办?
答案 0 :(得分:1)
问题是您自己使用内置的open()
打开了图像文件,并将其传递给Image.open()
。坦率地说,我同意documentation在这种情况下有点模棱两可-我想一个真实的file
是一个“文件状对象”。
无论如何,如果让PIL打开文件,则它会起作用:
import glob
from PIL import Image
folder = "*.jpg"
if __name__ == '__main__':
print("Your Program Here")
images = glob.glob(folder)
for image in images:
img = Image.open(image)
print(img.filename)
print("open")
如果由于某种原因确实需要该属性,一种解决方法是自己添加该属性:
if __name__ == '__main__':
print("Your Program Here")
images = glob.glob(folder)
for image in images:
with open(image, 'rb') as file:
img = Image.open(image)
img.filename = image # Manually add attribute.
print(img.filename)
print("open")