擅长:python、mysql、java
<p>标准<code>shutil.copytree</code>的这种限制似乎是任意的,令人讨厌。解决方法:</p>
<pre><code>def copytree(src, dst, symlinks=False, ignore=None):
for item in os.listdir(src):
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
shutil.copytree(s, d, symlinks, ignore)
else:
shutil.copy2(s, d)
</code></pre>
<p>请注意,它与标准的copytree并不完全一致:</p>
<ul>
<li>它不支持树的根目录的<code>symlinks</code>和<code>ignore</code>参数</li>
<li>它不会提高<code>shutil.Error</code>的根级别的错误</li>
<li>如果复制子树时出错,它将为该子树提升<code>shutil.Error</code>,而不是尝试复制其他子树并提升单个组合的<code>shutil.Error</code>。</li>
</ul>