Pillow Image.save()[Erno 13]权限被拒绝



所以我试图在文件夹中循环一堆图像,做一些更改并将它们保存在子目录中,但我遇到了权限被拒绝的问题。

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()

权限错误:[Erno 13]权限被拒绝:'D:/my_path/out/'

这一行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

最新更新