擅长:python、mysql、java
<p>在atzz对上述函数总是试图将文件从源复制到目的地的函数的回答上有了一些小小的改进。</p>
<pre><code>def copytree(src, dst, symlinks=False, ignore=None):
if not os.path.exists(dst):
os.makedirs(dst)
for item in os.listdir(src):
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
copytree(s, d, symlinks, ignore)
else:
if not os.path.exists(d) or os.stat(s).st_mtime - os.stat(d).st_mtime > 1:
shutil.copy2(s, d)
</code></pre>
<p>在我上面的实现中</p>
<ul>
<li>创建输出目录(如果不存在)</li>
<li>通过递归调用我自己的方法来复制目录。</li>
<li>当我们真正复制文件时,我会检查文件是否被修改,然后
我们应该复制。</li>
</ul>
<p>我正在使用上面的函数和scons构建。这对我帮助很大,因为每次编译时,我可能不需要复制整个文件集。。但只有修改过的文件。</p>