<p>在Python中,经常可以看到在运行代码时会遇到错误,称为<code>exceptions</code>。因此,已部署<code>try/catch</code>。</p>
<p>下面是我在日常工作中使用的一段代码,它可以从目录中清除文件</strong>,如果文件不存在,则跳过这些文件。</p>
<pre><code>def DeleteFile(Path_):
"""Deletes saved project AND its corresponding "files" folder."""
try: #deletes the folder
os.remove(Path_)
except OSError:
pass
try: #deletes the file, using some fancy python operations to arrive at the filename
shutil.rmtree(os.path.join(os.path.dirname(Path_),os.path.splitext(os.path.basename(Path_))[0])+"_files", True)
except OSError:
pass
</code></pre>
<p>这是检查文件是否存在的经典示例。与其在<code>try</code>语句中删除</em>,不如尝试复制文件</em>。如果它失败了,它将转到<code>pass</code>,这将跳过<code>try/catch</code>块。</p>
<p>注意,<code>try/catch</code>可以用来捕获任何</em>异常,也可以用来捕获<a href="http://docs.python.org/2/library/exceptions.html" rel="nofollow">specific ones</a>。我已经写了<code>OSError</code>但请仔细阅读以确保这是您想要的。如果您在一个<code>catch</code>中有一个特定的错误,并且系统返回了一个错误类型,那么您的<code>try/catch</code>将无法按您希望的方式工作。所以,一定要。最好是一般性的。</p>
<p>快乐编码!</p>
<p>编辑:值得注意的是,这个<code>try/catch</code>系统是一个非常<em>的Pythonic</em>方式。<code>try/catch</code>是非常简单和流行的,但是您的情况可能需要一些不同的东西。</p>
<p>编辑:我不确定这是否值得注意,但我知道我的回答并没有直接告诉您如何检查文件是否存在。相反,它假定它不这样做,并继续进行操作。如果你遇到了一个问题(即,它存在,你需要覆盖),你可以使它自动跳过整个问题,进入下一个问题。同样,这只是完成相同任务的许多方法之一。</p>