簡體   English   中英

Pillow Image.save() [Errno 13] 權限被拒絕

[英]Pillow Image.save() [Errno 13] Permission denied

所以我試圖在一個文件夾中循環一堆圖像,做一些更改並將它們保存在一個子目錄中,但我遇到了權限被拒絕的問題。

from PIL import Image
import os

path = 'D:/my_path/'


dirs = os.listdir( path )

new_folder = 'out'

if not os.path.exists(path + new_folder):
    os.makedirs(path + new_folder)

def resize():
    num=0
    for item in dirs:

        #print(path + item)
        if os.path.isfile(path+item):
            im = Image.open(path+item).convert('RGB')

            imResize = im.resize((64, 64), Image.ANTIALIAS)
            im.Resize = os.rename(os.path.join(path, item),os.path.join(path, 'bad_' + str(num)) )
            imResize.save(path + new_folder, 'JPEG', quality=90)

            num+=1
        #if num > 1000:
            #break
resize()

PermissionError: [Errno 13] 權限被拒絕: 'D:/my_path/out/'

錯誤在這一行觸發imResize.save(path + new_folder, 'JPEG', quality=90)知道為什么嗎?

imResize.save(path + new_folder, 'JPEG', quality=90)在我看來imResize.save(path + new_folder, 'JPEG', quality=90) 您有一個名為D:/my_path/out的目錄,在這里您嘗試將文件保存為名稱D:/my_path/out 那已經是一個目錄,因此您無法保存具有相同名稱的文件。

嘗試為您的文件選擇一個與現有目錄的名稱不沖突的名稱。

outputfilename = os.path.join(path, new_folder, "myoutputfile_{}.jpg".format(num))
imResize.save(outputfilename, 'JPEG', quality=90)

工作代碼:

rename = 'bad_img_'

def resize():
    num=0
    for item in dirs:
        if os.path.isfile(path+item):
            im = Image.open(path+item).convert('RGB')
            imResize = im.resize((64, 64), Image.ANTIALIAS)
            imResize.save(os.path.join(save_dir, rename + str(num)) + '.JPG', 'JPEG', quality=90)
            num+=1

resize()

我有一個類似的問題。 在我的情況下,路徑是正確的,但由於文件權限而出現問題。 在 Mac 中,右鍵單擊文件並選擇get info ,然后將權限更改為read&write

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM