使用Python复制目录结构

use*_*434 3 python copy file

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

Basic Operation : copy files with the proper directory structure.
Run Code Online (Sandbox Code Playgroud)

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

sil*_*gan 6

您可以使用shutil.copytree.

更新:您可以查看shutil.py源代码以了解它是如何实现的.


Mal*_*elo 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
Run Code Online (Sandbox Code Playgroud)

然后调用shutil.copytree(source, target, copy_function=copy_dir)sourceat 重新创建文件夹和子文件夹结构target.