在我的问题之前对我的情况做一点解释。
我创建了一个名为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中提供完整路径?
由于
答案 0 :(得分:1)
使用pkg_resources
import pkg_resources
data = pkg_resources.resource_string(__name__, "mtr.txt")
此软件包提供了更多方法,请查看Resource Manager API的文档。