Python3 PIL Image 操作文件后导致占用问题
需求:按图片分辨率范围分类图片(每个商品有N张图片在一个目录内)。
实现:用PIL Image打开图片并读取宽度和高度。然后按不同分辨率存档到不同目录。
问题:从原有目录移动到目标目录时出现 “PermissionError: [WinError 5] 拒绝访问。: 'E:\\src\\dir1' -> 'E:\\des\\dir1'” 和 “PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'E:\\src\\dir1\\imagename.jpg'”。
原因:Image.open(fullfilename) 后没有关闭。(注:Image 没有close方法)。
解决方案:
fp = open(fullfilename,'rb')
img = Image.open(fp) #这里改为文件句柄
fp.close()
参考:http://www.cnblogs.com/zzy0471/archive/2012/04/19/2456450.html https://www.v2ex.com/t/236577