为我的 Python 程序存储特定于应用程序的参数(持久数据)的首选方法是什么?
我正在创建一个 Python 程序,它需要存储一些参数:“project_name”、“start_year”、“max_value”、...
我不知道哪种是存储这些数据的最佳方式(在进行计算和报告时我必须重用它们):使用本地 TXT 文件,使用非常简单的 DB(它是否存在于 Python 中?我应该使用 SQLite ?), ...
非常感谢您提前。
为我的 Python 程序存储特定于应用程序的参数(持久数据)的首选方法是什么?
我正在创建一个 Python 程序,它需要存储一些参数:“project_name”、“start_year”、“max_value”、...
我不知道哪种是存储这些数据的最佳方式(在进行计算和报告时我必须重用它们):使用本地 TXT 文件,使用非常简单的 DB(它是否存在于 Python 中?我应该使用 SQLite ?), ...
非常感谢您提前。
如果方案是固定的,最好选择 sqldb,如 sqlite3,加上 memcached 作为缓存。如果关系经常变化,我认为灵活的数据可以存储在文件中(哈希索引)。
您可以使用搁置库。从搁置文档:
“架子”是一个持久的、类似字典的对象。与 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()
SQLite。非常容易设置,并且您获得了许多内置的数据库功能。您也不必处理文件读/写和解析。
pickle
它:
import pickle
options = {
'project_name': 'foo',
'start_year': 2000
}
with open('config.pickle', 'wb') as config:
pickle.dump(options, config)
该pickle
模块允许您将大多数 Python 对象转储到文件中并再次读取它们。