为了账号安全,请及时绑定邮箱和手机立即绑定

在python中,如何忽略异常并处理奇数代码?

在python中,如何忽略异常并处理奇数代码?

蝴蝶不菲 2022-05-24 15:11:22
样本:with suppress(Exception)    os.remove('test1.log')    os.remove('test2.log')try:    os.remove('test1.log')    os.remove('test2.log')except:    pass如果 test1.log 因为FileNotFoundError不存在,则不会删除 test2.log 。那么异常发生后如何处理奇数代码,或者如何防止异常被抛出呢?
查看完整描述

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')


查看完整回答
反对 回复 2022-05-24
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

tituszban 已经给出了一个有效的解决方案。您也可以简单地将您的语句放入一个 for 循环中,这是一种较短的语法,因为您不必重复您的 try-catch 块(在尝试删除超过 2 个项目时特别有用)。


lst = ["test1.log","test2.log"]

for element in lst:

    try:

        os.remove(element)

    except:

        pass


查看完整回答
反对 回复 2022-05-24
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

正如副本所解释的那样,您不能只抑制异常。


你可能想要这样的东西:


files = ["test1.log", "test2.log"]

for file in files:

    try:

        os.remove(file)

    except:

        pass


查看完整回答
反对 回复 2022-05-24
  • 3 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信