我开始掌握 Python 中的 Pillow 库。我有一个存储代码的文件夹(文件夹 1),在该文件夹中还有另一个文件夹(文件夹 2),我想编辑/操作的所有图片都在其中。但是,我只能在将图像保存在文件夹 1 中时才能访问这些图像,而当它们仅保存在文件夹 2 中时则无法访问。我已经使用了代码:from PIL import Imageimport osfor k in os.listdir('.'): if k.endswith('.jpg'): i = Image.open(k) kn, kext = os.path.splitext(k) print(kn)打印所有文件名减去“.jpg”扩展名的名称:MeisJeMetDeParelStarryNightTheSonOfMan然后我尝试做同样的事情,只从他们自己的特定文件夹中访问图像: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 文件夹中的图片?谢谢
1 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
该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)
添加回答
举报
0/150
提交
取消