问题:你只想忽略某个特定的异常,但写一堆 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')