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

  • 相关阅读:
    BZOJ3992 [SDOI2015]序列统计
    BZOJ3991 [SDOI2015]寻宝游戏
    BZOJ4007 [JLOI2015]战争调度
    BZOJ4006 [JLOI2015]管道连接
    BZOJ4004 [JLOI2015]装备购买
    P2567 [SCOI2010]幸运数字
    P1447 [NOI2010]能量采集
    比赛-Round 2 (11 Jul)
    题解-弹飞绵羊 (HNOI2015)
    归并排序模板
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/12036608.html
Copyright © 2011-2022 走看看