存储应用程序持久数据,平面文件或数据库的首选方法是什么?

时间:2012-06-03 06:26:43

标签: python local-storage

为我的Python程序存储特定于应用程序的参数(持久数据)的首选方法是什么?

我正在创建一个Python程序,需要存储一些参数:“project_name”,“start_year”,“max_value”,...

我不知道哪种方法可以存储这些数据(我必须在进行计算和报告时重复使用它们):使用本地TXT文件,使用非常简单的数据库(它是否存在于Python中?我使用SQLite?),...

非常感谢你。

4 个答案:

答案 0 :(得分:0)

SQLite的。非常容易设置,并且您获得了许多内置数据库功能。您也不必处理文件读/写和解析。

答案 1 :(得分:0)

pickle它:

import pickle

options = {
  'project_name': 'foo',
  'start_year': 2000
}

with open('config.pickle', 'wb') as config:
  pickle.dump(options, config)

pickle模块允许您将大多数Python对象转储到文件中并再次读回。

答案 2 :(得分:0)

您可以使用搁置库。来自搁置文件:

“架子”是一个持久的,类似字典的对象。与dbm数据库的区别在于,架子中的值(而不是键!)可以是基本上任意的Python对象 - “pickle”模块可以处理的任何内容

import shelve
d = shelve.open(filename) # open, with (g)dbm filename -- no suffix
d[key] = data   # store data at key (overwrites old data if
                # using an existing key)
data = d[key]   # retrieve a COPY of the data at key (raise
                # KeyError if no such key) -- NOTE that this
                # access returns a *copy* of the entry!
del d[key]      # delete data stored at key (raises KeyError
                # if no such key)
flag = d.has_key(key)   # true if the key exists; same as "key in d"
list = d.keys() # a list of all existing keys (slow!)
d.close()

答案 3 :(得分:0)

如果方案是固定的,sqldb最好选择,比如sqlite3,加上memcached作为缓存。 如果关系经常变化,我认为灵活的数据可能存储在文件中(哈希索引)。