ConfigParser之类的东西是否适合在运行之间保存状态(键,值)?

Pau*_*ce. 2 python xml perl configparser

我想在Python程序的运行之间保存一组键值对(字符串,整数),在后续运行时重新加载它们,并将更改写入下次运行时可用.

我不认为这些数据是配置文件,但它很适合ConfigParser功能.我只需要两个[部分].它只有几百对而且非常简单,所以我认为不需要做一个真正的数据库.

以这种方式使用ConfigParser是否合适?我也考虑过使用Perl和XML :: Simple.那个怎么样?有没有办法在没有Python或Perl的bash中执行此操作?

Nad*_*mli 16

好吧,你有更好的选择.例如,您可以使用picklejson格式.Pickle序列化模块非常易于使用.

import cPickle
cPickle.dump(obj, open('save.p', 'wb')) 
obj = cPickle.load(open('save.p', 'rb'))
Run Code Online (Sandbox Code Playgroud)

格式不是人类可读的,并且unpickling对于错误或恶意构造的数据是不安全的.您不应该取消不受信任的数据.

如果您使用的是python 2.6,则会有一个名为json的内置模块.它就像泡菜一样简单:

import json
encoded = json.dumps(obj)
obj = json.loads(encoded)
Run Code Online (Sandbox Code Playgroud)

Json格式是人类可读的,与python中的字典字符串表示非常相似.而且没有像泡菜这样的安全问题.

如果您使用的是早期版本的python,则可以使用simplejson.


ste*_*han 8

对我来说,PyYAML适合这类事情.我之前习惯使用pickle或ConfigParser.