3 回答

TA貢獻1842條經驗 獲得超13個贊
如果觸發了try-except異常,它將進入該except部分而不是從那里繼續。因此,如果您想確保兩者remove都嘗試過,請執行以下操作:
try:
os.remove('test1.log')
except:
pass
try:
os.remove('test2.log')
except:
pass
或者,您可以在刪除文件之前嘗試檢查文件是否存在:
if os.path.exists('test1.log'):
os.remove('test1.log')
if os.path.exists('test2.log'):
os.remove('test2.log')

TA貢獻1862條經驗 獲得超7個贊
tituszban 已經給出了一個有效的解決方案。您也可以簡單地將您的語句放入一個 for 循環中,這是一種較短的語法,因為您不必重復您的 try-catch 塊(在嘗試刪除超過 2 個項目時特別有用)。
lst = ["test1.log","test2.log"]
for element in lst:
try:
os.remove(element)
except:
pass

TA貢獻1843條經驗 獲得超7個贊
正如副本所解釋的那樣,您不能只抑制異常。
你可能想要這樣的東西:
files = ["test1.log", "test2.log"]
for file in files:
try:
os.remove(file)
except:
pass
添加回答
舉報