錯誤:PermissionError: [WinError 32] 另外一個程序正在使用此文件,進程沒法訪問。"+文件路徑"的解決方案

最近在使用python進行篩選圖片的時候,想到用python裏面的os庫進行圖片的刪除。python

具體篩選方法就是,刪除掉圖片長度或寬度小於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一張圖片的時候,咱們是不能進行刪除操做的,就像錯誤提示的那樣,當前文件被另外一個程序使用,解決方法就是加上下面這行代碼code

img.close()  #bug修改代碼

如此,錯誤成功解決。blog

總結:圖片

  1、之後無論是圖像文件仍是txt等文本文件,當咱們在進行open的時候,必定要記得close掉,甚至還能夠擴展到只要使用了open函數,就必定記得close掉。
  2、在這裏只是刪除的時候會報這個錯誤,那麼若是是對圖片數組進行修改、或者移動圖片的時候會不會一樣報這個錯誤呢?這個猜測留待之後驗證。rem

相關文章
相關標籤/搜索