在Python脚本中存储用户数据
在运行Python脚本时,如果我需要在下次运行时再次使用用户输入的数据,通常应该怎么存储这些数据呢?
举个例子,我的脚本会根据用户输入的内容进行计算,然后在用户再次运行脚本时,它会从上次的运行结果中获取数据。
目前,我是把数据写入一个文本文件,然后再从这个文件中读取。我觉得我不需要存储特别大的记录(大概少于100条吧)。
我的脚本是针对Windows和Linux用户的,所以一个跨平台的解决方案会比较好。我对使用文本文件有点担心,因为我觉得这可能不是最好的、最常见的做法。
所以我的问题是,如果你需要为你的脚本存储一些数据,你是怎么做的呢?
4 个回答
6
对于小量数据,Python的pickle模块非常适合用来存储你想要以后方便访问的数据——只需将内存中的数据对象进行“腌制”,然后写入用户主文件夹中的一个(隐藏的)文件里(在Linux等系统上很好用),或者写入Windows的应用数据文件夹。
另外,正如@aaronnasterling提到的,sqlite3文件数据库体积小、速度快、使用简单,因此很多流行的程序,比如Firefox和Pidgin,都在用它。
6
对于100行的数据,使用普通文本就可以,配合标准的 ConfigParser 或者 csv 模块都没问题。
假设你的数据结构比较简单,使用文本格式可以让你利用一些工具(比如grep、vi、记事本)来处理数据,而更复杂的格式就没法做到这一点。
11
你可以使用一个小型数据库或者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