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



在我提问之前对我的情况进行一点解释。

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

/runtime/foo

以及使用 sys.path.append() 导入 foo 的脚本"test.py"位于其中。

/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 内提供其完整路径?

谢谢

使用 pkg_resources

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

此包提供了更多方法,请查看资源管理器 API 的文档。

最新更新