錯誤: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掉。
  二、在這里只是刪除的時候會報這個錯誤,那么如果是對圖片數組進行修改、或者移動圖片的時候會不會同樣報這個錯誤呢?這個猜想留待以后驗證。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM