[英]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.