我想用Python包包含数据文件。是按照建议的here将它们放在实际包装内的最佳位置,即
setup.py
src/
mypkg/
__init__.py
module.py
data/
tables.dat
spoons.dat
forks.dat
还是有更好的方法吗?从python内部检索数据文件的最佳方法是什么?我应该使用
mypkg.__path__ + 'data/tables.dat'
例如,或者我应该使用
pkgutil.getdata('mypkg','tables.dat')
或者说,还有另一种更好的方法吗?
一般来说,目前处理Python包中数据的首选方法是什么?
答案 0 :(得分:3)
pkgutil意味着即使软件包安装在ZIP文件中也可以加载数据,所以如果你想支持它,那就更好了。将它存储在这样的数据目录中很好,我一直这样做。 :)
答案 1 :(得分:-2)
您应该将数据存储为Python数据结构,而不是Pickle模块。这样,当你调用它(加载它)时,数据就可以使用了,你不需要在每个脚本中处理它。
至于位置,以一种对用户透明和清晰的方式存储它是有道理的,以下对我来说似乎很直观:
from package import data