在Python脚本中存储用户数据

时间:2010-09-03 03:30:20

标签: python

在运行Python脚本时,如果我在下次运行脚本时再次需要数据,那么存储用户输入的数据的首选/常用方法是什么?

例如,我的脚本根据用户输入的内容执行计算,然后当用户再次运行脚本时,它会从上次运行中获取结果。

现在,我将数据写入文本文件并从那里读取。我不认为我需要存储非常大的记录(不到100,我会说)。

我使用此脚本瞄准Windows和Linux用户,因此跨平台解决方案会很好。我对使用文本文件的唯一担忧是,我觉得这可能不是最佳和通常的做法。

所以我的问题是,如果您需要为脚本存储一些数据,那么你是如何做到的?

4 个答案:

答案 0 :(得分:10)

您可以使用slite数据库或CSV文件。它们都非常容易使用,但它们适用于具有相同类型信息的行。

最佳选择可能是shelve模块

import shelve

shelf = shelve.open(filename)
shelf['key1'] = value1
shelf['key2'] = value2

shelf.close()
 # next run
shelf.open(filename)

value1 = shelf['key1']
#etc

答案 1 :(得分:6)

对于少量数据,Python's pickle module非常适合存储您希望以后轻松访问的数据 - 只需从内存中挑选数据对象并写入用户主文件夹中的(隐藏)文件(好)对于Linux等)或应用程序数据(在Windows上)。

正如@aaronnasterling所提到的,sqlite3 file-based database很小,快速而简单,因此很多像Firefox和Pidgin这样的流行程序都会使用它。

答案 2 :(得分:5)

对于100行,使用标准ConfigParsercsv模块可以使用纯文本。

假设您的数据结构很简单,文本会提供更复杂格式排除的机会(例如grep,vi,notepad)。

答案 3 :(得分:2)

由于您只需要最后一个结果,只需存储结果

例如

写('某事',wb)

它只会存储最后的结果,重新运行脚本时,打开并读取结果