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

  • 相关阅读:
    硬件接口通信速度
    python socket非阻塞及python队列Queue
    pandaboard用wifi时打不开网页
    pandaboard安装ubuntu14.04系统遇到的问题
    创建ROS工作空间和包
    CAN 和 CANopen的区别和联系
    各种通信方式总汇
    ROS中的CMakeLists.txt
    备忘录模式
    class文件概述
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/12036608.html
Copyright © 2011-2022 走看看