【解決python中使用pillow報錯】PermissionError: [WinError 32] 另一個程序正在使用此文件,進程無法訪問


項目場景

import os
from PIL import Image
img = Image.open('test.png')
w, h = img.size
if w > h:
	os.remove('test.png')

python中使用pillow庫打開一張圖片,對圖片的長寬進行條件判斷,若滿足圖片的寬大於長,就調用os庫的remove函數將圖片刪除。

問題描述

PermissionError: [WinError 32] 另一個程序正在使用此文件,進程無法訪問。: 'test.png'

運行程序,報錯說是:另一個程序正在使用此文件,進程無法訪問。

原因分析

我們都知道,一般文件處於占用狀態的話,系統出於對文件的保護,我們是不能直接將其刪除的,除非強制解除占用。

這里用pillow庫打開了這張圖片,但不能立即將其刪除,那么就說明該文件打開后並沒有立即被釋放,仍處於占用狀態,所以我們只需要釋放文件就行了。

解決辦法

import os
from PIL import Image
import time
img = Image.open('test.png')
w, h = img.size
img.close()
if w > h:
    os.remove('test.png')

加一條代碼img.close()解除文件占用。然后就能對文件進行下一步的操作了。


免責聲明!

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



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