我有一个Python模块,我想从内部获取该模块目录。我想这样做,因为我有一些文件,我想引用相对于模块。
答案 0 :(得分:3)
首先,您需要在内部获得对模块的引用。
mod = sys.__modules__[__name__]
然后您可以使用__file__
转到模块文件。
mod.__file__
它的目录是dirname
。
答案 1 :(得分:3)
当你进入模块时,你所需要的只是:
import os
path_to_this_module = os.path.dirname(__file__)
但是,如果有问题的模块实际上是您的程序入口点,那么__file__
将只是文件的名称,您需要扩展路径:
import os
path_to_this_module = os.path.dirname(os.path.abspath(__file__))
答案 2 :(得分:2)
我认为这就是你要找的东西:
import <module>
import os
print os.path.dirname(<module>.__file__)
答案 3 :(得分:1)
您应该使用pkg_resources
,resource
* family函数可以完成您需要的所有操作,而无需使用文件系统。
import pkg_resources
data = pkg_resources.resource_string(__name__, "some_file")