【问题标题】:Getting a Python Modules Dierctory from Inside Itself从内部获取 Python 模块目录
【发布时间】:2011-11-26 11:29:05
【问题描述】:

我有一个 Python 模块,我想从其内部获取该模块目录。我想这样做是因为我有一些我想相对于模块引用的文件。

【问题讨论】:

标签: python module path directory


【解决方案1】:

首先,您需要获取对自身内部模块的引用。

mod = sys.__modules__[__name__]

然后你可以使用__file__ 来获取模块文件。

mod.__file__

它的目录是那个dirname

【讨论】:

  • __file__ 属性是我正在寻找的。​​span>
【解决方案2】:

因为你在模块中,所以你需要的是:

import os
path_to_this_module = os.path.dirname(__file__)

但是,如果有问题的模块实际上是您的程序入口点,那么 __file__ 将只是文件的名称,您需要扩展路径:

import os
path_to_this_module = os.path.dirname(os.path.abspath(__file__))

【讨论】:

    【解决方案3】:

    我想这就是你要找的:

    import <module>
    import os
    print os.path.dirname(<module>.__file__)
    

    【讨论】:

      【解决方案4】:

      您应该为此使用pkg_resources,函数的resource* family 几乎可以完成您需要的所有事情,而无需处理文件系统。

      import pkg_resources
      data = pkg_resources.resource_string(__name__, "some_file")
      

      【讨论】:

        猜你喜欢
        • 2021-03-07
        • 1970-01-01
        • 2017-11-24
        • 2018-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-15
        • 2015-07-23
        相关资源
        最近更新 更多