0

从与当前执行的 Python 3.x 脚本位于同一文件夹中的文件中打开和加载数据可以这样完成:

import os

mydata_path = os.path.join(os.path.dirname(__file__), "mydata.txt")
with open(mydata_path, 'r') as file:
    data = file.read()

然而,一旦脚本和mydata.txt文件成为 Python 包的一部分,这就不再那么简单了。我已经设法使用模块中的函数组合来做到这一点,pkg_resources例如resource_exists(),和. 我不会把我的代码放在这里,因为它很糟糕而且很糟糕(但它有点工作)。resource_listdir()resource_isdir()resource_string()

无论如何,我的问题是;有没有办法管理与当前正在执行的 Python 脚本在同一文件夹中的文件加载,无论文件是否在包中?

4

1 回答 1

2

您可以使用importlib.resources.read_text以读取相对于包的文件:

from importlib.resources import read_text

data = read_text('mypkg.foo', 'mydata.txt')
于 2022-02-07T13:25:58.653 回答