gpt4 book ai didi

python - 访问包子目录中的数据

转载 作者:IT老高 更新时间:2023-10-28 21:06:50 25 4
gpt4 key购买 nike

我正在编写一个 python 包,其中包含需要在 ./data/ 子目录中打开数据文件的模块。现在我有硬编码到我的类和函数中的文件的路径。我想编写更健壮的代码,无论它安装在用户系统的哪个位置,都可以访问子目录。

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

这似乎应该是一个微不足道的常见问题。然而我似乎无法弄清楚。部分问题是我的数据文件不是 .py 文件,所以我不能使用导入函数等。

有什么建议吗?

现在我的包目录如下:

/
__init__.py
module1.py
module2.py
data/
data.txt

我正在尝试从 module*.py 访问 data.txt!

最佳答案

执行此操作的标准方法是使用 setuptools 包和 pkg_resources。

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

http://docs.python.org/distutils/setupscript.html#installing-package-data

然后您可以按照此链接使用 pkg_resources 重新查找和使用这些文件:

http://peak.telecommunity.com/DevCenter/PkgResources#basic-resource-access

import pkg_resources

DATA_PATH = pkg_resources.resource_filename('<package name>', 'data/')
DB_FILE = pkg_resources.resource_filename('<package name>', 'data/sqlite.db')

关于python - 访问包子目录中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com