错误 32:进程无法访问文件
Error 32: The process cannot access the file
如果图像在尝试使用 PIL 打开时抛出 IOError,我正在尝试删除图像,但出于某种原因,我的尝试,除了此处的设置不起作用。
当我运行这个的时候,它给出了错误:
WindowsError:[错误 32] 进程无法访问该文件,因为它正被另一个进程使用:
dir_src = 'D:\images'
folderlist = os.listdir(dir_src)
for folder in folderlist:
flag = False
dir_src_fine = dir_src + '\' + folder
filelist = os.listdir(dir_src_fine)
for x in filelist:
flag = False
name = dir_src_fine + "\" + x
try:
im = Image.open(name).convert('RGB')
im.close()
except IOError:
os.remove(name)
您应该在完成后立即关闭原始文件。现在您不保存副本,所以 open/convert 分两步进行。在尝试使用它之前将 im
初始化为 None
并在异常中包含关闭逻辑以确保它确实已被释放。
dir_src = 'D:\images'
folderlist = os.listdir(dir_src)
for folder in folderlist:
flag = False
dir_src_fine = dir_src + '\' + folder
filelist = os.listdir(dir_src_fine)
for x in filelist:
flag = False
name = dir_src_fine + "\" + x
im = im2 = None
try:
im = Image.open(name)
im2 = im.convert('RGB')
im.close()
except IOError:
if im:
im.close()
os.remove(name)
finally:
if im:
im.close()
if im2:
im2.close()
如果图像在尝试使用 PIL 打开时抛出 IOError,我正在尝试删除图像,但出于某种原因,我的尝试,除了此处的设置不起作用。
当我运行这个的时候,它给出了错误: WindowsError:[错误 32] 进程无法访问该文件,因为它正被另一个进程使用:
dir_src = 'D:\images'
folderlist = os.listdir(dir_src)
for folder in folderlist:
flag = False
dir_src_fine = dir_src + '\' + folder
filelist = os.listdir(dir_src_fine)
for x in filelist:
flag = False
name = dir_src_fine + "\" + x
try:
im = Image.open(name).convert('RGB')
im.close()
except IOError:
os.remove(name)
您应该在完成后立即关闭原始文件。现在您不保存副本,所以 open/convert 分两步进行。在尝试使用它之前将 im
初始化为 None
并在异常中包含关闭逻辑以确保它确实已被释放。
dir_src = 'D:\images'
folderlist = os.listdir(dir_src)
for folder in folderlist:
flag = False
dir_src_fine = dir_src + '\' + folder
filelist = os.listdir(dir_src_fine)
for x in filelist:
flag = False
name = dir_src_fine + "\" + x
im = im2 = None
try:
im = Image.open(name)
im2 = im.convert('RGB')
im.close()
except IOError:
if im:
im.close()
os.remove(name)
finally:
if im:
im.close()
if im2:
im2.close()