访问包子目录中的数据[重复]

这个问题在这里已经有答案了
如何从Python包中读取(静态)文件?

(7个答案)

去年关闭了

我正在编写一个python包,其中包含需要打开/data/子目录中的数据文件的模块。现在,我已经将文件的路径硬编码到我的类和函数中。我希望编写更健壮的代码,无论子目录安装在用户系统的何处,都可以访问该子目录

我试过各种方法,但到目前为止我运气不好。似乎大多数“currentdirectory”命令都返回系统python解释器的目录,而不是模块的目录

这似乎应该是一个微不足道的常见问题。但我似乎不明白。部分问题是我的数据文件不是.py文件,因此我不能使用导入函数等

有什么建议吗

现在,我的包目录如下所示:

/
__初始值
模块1.py
模块2.py
数据/
data.txt

我正试图从module*.py访问data.txt

标准方法是使用setuptools包和pkg_资源

您可以根据以下层次结构布局包,并根据此链接配置包设置文件以将其指向您的数据资源:

http://docs.python.org/distutils/setupscript.html#installing-包数据

然后,您可以使用pkg_资源重新查找并使用这些文件,如下链接所示:

http://peak.telecommunity.com/DevCenter/PkgResources#basic-资源访问

导入软件包资源
DATA_PATH=pkg_resources.resource_文件名(“<package name>”,“DATA/”)
DB_FILE=pkg_resources.resource_文件名(“<package name>”,“data/sqlite.DB”)

发表评论