存储/检索python数据的首选方法

时间:2010-01-24 19:24:38

标签: python

我想用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包中数据的首选方法是什么?

2 个答案:

答案 0 :(得分:3)

pkgutil意味着即使软件包安装在ZIP文件中也可以加载数据,所以如果你想支持它,那就更好了。将它存储在这样的数据目录中很好,我一直这样做。 :)

答案 1 :(得分:-2)

您应该将数据存储为Python数据结构,而不是Pickle模块。这样,当你调用它(加载它)时,数据就可以使用了,你不需要在每个脚本中处理它。

至于位置,以一种对用户透明和清晰的方式存储它是有道理的,以下对我来说似乎很直观:

from package import data