如何使用Python将目录从包递归复制到当前路径

时间:2017-09-21 12:46:15

标签: python python-3.x

例如,我的Python项目包中有一个样板目录,运行此CLI工具时,我想将样板文件复制到当前工作路径,如何制作? enter image description here

1 个答案:

答案 0 :(得分:1)

如果boilerplate不是Python包(没有__init__.py文件的目录),我推荐这样:

import os.path
import pkg_resources
import shutil

root_dir= os.path.dirname(pkg_resources.resource_filename('my_lib', '__init__.py'))
src_path = os.path.join(root_dir, "boilerplate")
if os.path.isdir(dst_path):
    shutil.rmtree(dst_path)
shutil.copytree(src_path, dst_path)

这个想法:

  • 获取图书馆的根路径(" my_lib")。
  • 获取"样板的完整路径"在此 root_dir
  • 然后使用copytree(除非您要排除某些文件,例如" .svn")。

您的图书馆必须与zip_safe=False打包在一起(setup.py)。

相关问题