错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。"+文件路径"的解决方案
最近在使用python进行筛选图片的时候,想到用python里面的os库进行图片的删除。
具体筛选方法就是,删除掉图片长度或宽度小于100像素的图片,示例代码如下所示:
for file in os.listdir(img_path): if file.split('.')[-1]=='jpg': img = Image.open(os.path.join(img_path,file)) #img.close() bug修改代码 size = list(img.size) if size[0] > 100 or size[1] > 100: pass else: os.remove(os.path.join(img_path,file)) print(file)
在运行上述代码的时候,会报出如下错误:
解决方案:不管是PIL、opencv等python库在open一张图片的时候,我们是不能进行删除操作的,就像错误提示的那样,当前文件被另一个程序使用,解决方法就是加上下面这行代码
img.close() #bug修改代码
如此,错误成功解决。
总结:
一、以后不管是图像文件还是txt等文本文件,当我们在进行open的时候,一定要记得close掉,甚至还可以扩展到只要使用了open函数,就一定记得close掉。
二、在这里只是删除的时候会报这个错误,那么如果是对图片数组进行修改、或者移动图片的时候会不会同样报这个错误呢?这个猜想留待以后验证。
本文来自博客园,作者:|旧市拾荒|,转载请注明原文链接:https://www.cnblogs.com/xiaoyh/p/12036608.html