2016-09-17 59 views
1

我有一个Python模块分布(它是一个蛋),它包含一些额外的文件&我想在程序的运行期间复制的目录。在Python模块分配中计算目录路径

├── mypkg 
│ ├── extra_files 
│ │  ├── layouts/ 
│ │  ├── scripts/ 
│ │  └── config.yaml 

当使用mypkg是,我想extra_files目录的所有内容复制到别的地方在磁盘上。喜欢的东西:

shutil.copytree('mypkg/extra_files', destination) 

我在pkg_resources采取一看但它看起来像我不能计算出一个目录路径的方式。

如何计算我的分发包中文件和目录的路径?我是否需要首先列出所有目录,然后在每个目录中的每个文件上调用pkg_resources.resource_stream

回答

0

我实际上可以做到这一点__file__,它返回模块第一次加载的路径名。我可以像这样得到我的静态目录的完整路径:

import os 
directory = os.path.join(os.path.dirname(__file__), 'templates/index.html')