使用Python复制目录结构

时间:2011-08-10 13:45:33

标签: python file copy

是否可以在python中编写脚本来执行以下操作。

Basic Operation : copy files with the proper directory structure.

给定文件名列表,程序应扫描目录,并将目录中的文件复制到目标目录,并保留文件夹structre。这类似于在eclipse中通过“创建适当的子文件夹”导出文件系统。

2 个答案:

答案 0 :(得分:6)

您可以使用shutil.copytree

更新:您可以查看shutil.py source code以查看其实施方式。

答案 1 :(得分:5)

更新:我刚看到问题是要复制目录结构和文件。我的答案是仅针对没有文件和python3的目录结构,只有yossi指出。我仍然希望保留原样的答案,希望不要被低估。

我发现silviubogan的upvoted答案非常有助于解决问题(我也曾多次面对这个问题),所以这是我的方法:

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)source的{​​{1}}重新创建文件夹和子文件夹结构。