python中的平面文件键值存储

时间:2011-12-15 23:22:31

标签: python

我正在寻找Python中的平面文件,便携式键值存储。我将使用字符串作为键和字符串或值列表。我看了ZODB,但我想要一些更广泛使用并且更积极开发的东西。 Python中的任何dmb模块是否需要系统库或数据库服务器(如mysql或类似服务器),或者我可以用任何文件写入文件吗?

如果dbm不支持python列表,我想我可以序列化它吗?

4 个答案:

答案 0 :(得分:6)

您可能需要考虑h5py这是HDF5的Python接口。

In [1]: import h5py

In [2]: f = h5py.File('test.hdf5', 'w')

In [3]: f['abc'] = [1, 2, 3]

In [4]: f['d'] = 'hello'

In [5]: f.close()

In [6]: f2 = h5py.File('test.hdf5', 'r')

In [7]: f2['abc'].value
Out[7]: array([1, 2, 3])

In [8]: list(f2['abc'])
Out[8]: [1, 2, 3]

In [10]: f2['d'].value
Out[10]: 'hello'

答案 1 :(得分:5)

默认支持sqlite并包含在标准库中,但为了简单起见,您可以使用shelve

http://docs.python.org/library/shelve.html

编辑: 我没有测试过这个,买dbm可能是你的解决方案。它是自1979年以来UNIX上的键值数据库。

http://docs.python.org/library/anydbm.html#module-anydbm如果您需要序列化,可以使用pickle。

答案 2 :(得分:3)

很抱歉提出一个明显的问题,但JSON文件不能为您提供服务吗?

答案 3 :(得分:1)

您可以查看shelve模块。它使用引擎盖下的泡菜,并允许您创建在启动之间持续存在的键值查找。

此外,使用jsondump方法的load模块也可能运行良好。