为了账号安全,请及时绑定邮箱和手机立即绑定

Python PIL 从特定文件打开图像

Python PIL 从特定文件打开图像

胡说叔叔 2021-09-14 21:34:43
我开始掌握 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)


查看完整回答
反对 回复 2021-09-14
  • 1 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信