打开相对于python模块路径的文件

时间:2016-04-27 20:02:15

标签: python python-2.7

在我的问题之前对我的情况做一点解释。

我创建了一个名为foo的模块。 foo在文件系统中的位置是

/runtime/foo

和脚本" test.py"使用sys.path.append()导入foo位于。

/runtime/bar/test.py

Foo的结构如下

foo
    mtr.txt
    __init__.py
    datasources.py

我想在datasources.py中创建一个类来打开文件mtr.txt。但是,如果不说明在数据源中给出路径,我就无法做到这一点。在这种情况下,它将是

/runtime/foo/mtr.txt

如果我确实给出了这条路径,我的代码就会起作用,但这应该是可行的,但我无法找到答案。

我在datasources.py中的类中尝试了以下命令。

open("mtr.txt")
open("./mtr.txt")

以及使用os.path.dirname()

的一些其他内容

有没有办法打开文件' mtr.txt'没有在datasources.py中提供完整路径?

由于

1 个答案:

答案 0 :(得分:1)

使用pkg_resources

import pkg_resources
data = pkg_resources.resource_string(__name__, "mtr.txt")

此软件包提供了更多方法,请查看Resource Manager API的文档。