我開始掌握 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
提交
取消