能否使用Python编写脚本来执行以下操作:
Basic Operation : copy files with the proper directory structure.
给定一个文件名列表,程序应该扫描目录,并将目录中的文件复制到目标目录中保留文件夹结构。这类似于Eclipse中“通过创建适当的子文件夹导出文件系统”的功能。
更新:我刚刚看到问题是要复制目录结构和文件。我的下面的答案仅适用于仅包含目录结构且仅适用于python3,正如yossi所指出的那样。我仍然想保留我的答案,并希望不会被downvote。
我发现silviubogan的受欢迎答案在解决这个问题(我也遇到了几次)方面非常有帮助,所以这是我的方法:
shutil.copytree()
接受一个copy_function
,所以你只需要一个不复制文件的复制函数。这里是稍微改变过的shutil.copy2()
的版本:
def copy_dir(src, dst, *, follow_sym=True):
if os.path.isdir(dst):
dst = os.path.join(dst, os.path.basename(src))
if os.path.isdir(src):
shutil.copyfile(src, dst, follow_symlinks=follow_sym)
shutil.copystat(src, dst, follow_symlinks=follow_sym)
return dst
然后调用shutil.copytree(source, target, copy_function=copy_dir)
函数,它会在target
路径下按照source
文件夹的结构创建相同的文件夹和子文件夹。