3 回答
TA贡献1842条经验 获得超12个赞
如果触发了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
添加回答
举报