是否可以在python中编写脚本来执行以下操作。
Basic Operation : copy files with the proper directory structure.
给定文件名列表,程序应扫描目录,并将目录中的文件复制到目标目录,并保留文件夹structre。这类似于在eclipse中通过“创建适当的子文件夹”导出文件系统。
答案 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}}重新创建文件夹和子文件夹结构。