问题:你只想忽略某个特定的异常,但写一堆 try/except 感觉太繁琐了。

你可能会这样写

try:
    os.remove('tempfile.txt')
except FileNotFoundError:
    pass

你也可以这样写——更优雅、更符合 Python 精神的写法:

from contextlib import suppress

with suppress(FileNotFoundError):
  os.remove('tempfile.txt')

适用场景:

·删除文件或关闭套接字
·清理临时文件
·关闭可能不存在的服务

你甚至可以同时抑制多个异常

from contextlib import suppress

with suppress(FileNotFoundError, PermissionError):
  os.remove('tempfile.txt')