在运行Python脚本时,如果我在下次运行脚本时再次需要数据,那么存储用户输入的数据的首选/常用方法是什么?
例如,我的脚本根据用户输入的内容执行计算,然后当用户再次运行脚本时,它会从上次运行中获取结果。
现在,我将数据写入文本文件并从那里读取。我不认为我需要存储非常大的记录(不到100,我会说)。
我使用此脚本瞄准Windows和Linux用户,因此跨平台解决方案会很好。我对使用文本文件的唯一担忧是,我觉得这可能不是最佳和通常的做法。
所以我的问题是,如果您需要为脚本存储一些数据,那么你是如何做到的?
答案 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行,使用标准ConfigParser或csv模块可以使用纯文本。
假设您的数据结构很简单,文本会提供更复杂格式排除的机会(例如grep,vi,notepad)。
答案 3 :(得分:2)
由于您只需要最后一个结果,只需存储结果
例如写('某事',wb)
它只会存储最后的结果,重新运行脚本时,打开并读取结果