存储/检索Python数据的优选方式

3 投票
2 回答
977 浏览
提问于 2025-04-15 18:24

我想在一个Python包里包含一些数据文件。把它们放在包里面,这种做法是不是最好的选择?就像这里提到的那样,具体来说是:

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 个回答

-2

你应该通过Pickle模块把数据存储为Python的数据结构。这样,当你需要用到这些数据时(加载它),它就已经准备好了,你不需要在每个脚本中都去处理这些数据。

至于存储的位置,最好是以一种对用户来说透明且清晰的方式来存放。以下的方式对我来说是比较直观的:

from package import data
3

pkgutil的意思是,即使你的包是安装在一个ZIP文件里,你也可以加载数据,所以如果你想支持这种情况,使用它会更好。像这样把数据存放在一个数据目录里也是可以的,我经常这么做。:)

撰写回答