菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
347
0

错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。"+文件路径"的解决方案

原创
05/13 14:22
阅读数 5833

最近在使用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掉。
  二、在这里只是删除的时候会报这个错误,那么如果是对图片数组进行修改、或者移动图片的时候会不会同样报这个错误呢?这个猜想留待以后验证。

发表评论

0/200
347 点赞
0 评论
收藏
为你推荐 换一批