Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python将目录从包递归复制到当前路径_Python_Python 3.x - Fatal编程技术网

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

如何使用Python将目录从包递归复制到当前路径,python,python-3.x,Python,Python 3.x,例如,在我的Python项目的包中有一个样板目录,当运行这个CLI工具时,我想将样板复制到当前的工作路径,如何使它? 如果样板文件不是Python包(没有\uuuu init\uuuu.py文件的目录),我建议这样做: import os.path import pkg_resources import shutil root_dir= os.path.dirname(pkg_resources.resource_filename('my_lib', '__init__.py')) src_p

例如,在我的Python项目的包中有一个样板目录,当运行这个CLI工具时,我想将样板复制到当前的工作路径,如何使它?

如果
样板文件
不是Python包(没有
\uuuu init\uuuu.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)
这个想法:

  • 获取库的根路径(“我的库”)
  • 获取此根目录中“样板文件”的完整路径
  • 然后使用
    copytree
    (除非您想排除某些文件,如“.svn”)
您的库必须打包为
zip\u safe=False
(在
setup.py
中)