擅长:python、mysql、java
<p>我刚刚偶然发现了一个可能是最优雅的解决方案:创建<code>ignored</code>上下文管理器:</p>
<pre><code>import errno
from contextlib import contextmanager
@contextmanager
def ignorednr(exception, *errornrs):
try:
yield
except exception as e:
if e.errno not in errornrs:
raise
pass
with ignorednr(OSError, errno.EEXIST):
os.mkdir(dir)
</code></pre>
<p>这样一来,我只需要创建一次上下文管理器,从那时起,语法就变得非常好和可读了。在</p>
<p>解决方案取自<a href="https://www.youtube.com/watch?v=OSGv2VnC0go" rel="nofollow noreferrer">https://www.youtube.com/watch?v=OSGv2VnC0go</a>。在</p>