Python PIL 从特定文件打开图像

我开始掌握 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 文件夹中的图片?谢谢


胡说叔叔
浏览 234回答 1
1回答

Cats萌萌

该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 globfor k in glob.glob('testPictures/*.jpg'):    i = Image.open(k)    kn, kext = os.path.splitext(k)    print(kn)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python