在Python脚本中存储用户数据

use*_*312 5 python

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

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

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

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

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

aar*_*ing 10

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

最好的选择可能是搁置模块

import shelve

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

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

value1 = shelf['key1']
#etc
Run Code Online (Sandbox Code Playgroud)


ewa*_*all 6

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

正如@aaronnasterling所提到的,一个基于sqlite3文件的数据库小巧,快速,简单,难怪像Firefox和Pidgin这么多流行的程序使用它.


msw*_*msw 5

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

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