最近在使用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