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