存储/检索Python数据的优选方式
我想在一个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文件里,你也可以加载数据,所以如果你想支持这种情况,使用它会更好。像这样把数据存放在一个数据目录里也是可以的,我经常这么做。:)