![](/img/trans.png)
[英]Python PIL - open image from file object: File not open for reading
[英]Python PIL open image from specific file
我正在使用Python的Pillow库。 我有一个存储代码的文件夹(文件夹1),在该文件夹中还有另一个文件夹(文件夹2),我要编辑/处理的所有图片都在其中。
但是,我只能在将图像保存在文件夹1中时访问它们,而不能仅在将它们保存在文件夹2中时访问它们。
我使用了代码:
from PIL import Image
import os
for k in os.listdir('.'):
if k.endswith('.jpg'):
i = Image.open(k)
kn, kext = os.path.splitext(k)
print(kn)
它将显示所有文件名的名称减去“ .jpg”扩展名:
MeisJeMetDeParel
StarryNight
TheSonOfMan
然后,我试图做同样的事情,只从它们自己的特定文件夹中访问图像:
for k in os.listdir('testPictures'):
if k.endswith('.jpg'):
i = Image.open(k)
kn, kext = os.path.splitext(k)
print(kn)
通过将目录更改为它们存储在其中的文件夹的名称(testPictures)。 但是,我得到了错误:
FileNotFoundError: [Errno 2] No such file or directory: 'MeisJeMetDeParel.jpg'
因此,似乎已在访问该文件夹中的图像,因为它能够识别该文件夹中的第一个图像的名称,但是代码无法打印图像的名称,因为它可以在以下情况下进行打印:代码和图像都保存在一起。 我可以对代码进行哪些调整,以便可以打印testPictures文件夹中的图片? 谢谢
os.listdir
函数返回相对于您指定目录的路径,因此您必须将目录os.path.join
加入您得到的名称中:
for k in os.listdir('testPictures'):
if k.endswith('.jpg'):
i = Image.open(os.path.join('testPictures', k))
kn, kext = os.path.splitext(k)
print(kn)
我可能建议您代替使用os.listdir
并手动检查扩展名,而可以使用glob
模块,并且还避免os.path.join
目录名称:
import glob
for k in glob.glob('testPictures/*.jpg'):
i = Image.open(k)
kn, kext = os.path.splitext(k)
print(kn)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.