代码之家  ›  专栏  ›  技术社区  ›  user225312

在python脚本中存储用户数据

  •  5
  • user225312  · 技术社区  · 15 年前

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

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

    现在,我将数据写入一个文本文件,然后从中读取数据。我不认为我需要存储非常大的记录(我会说少于100个)。

    我的目标是Windows和Linux用户都使用这个脚本,所以跨平台的解决方案会很好。我对使用文本文件唯一的担心是,我觉得它可能不是最好的和通常的方法。

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

    4 回复  |  直到 10 年前
        1
  •  10
  •   aaronasterling    15 年前

    您可以使用纵切数据库或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
    
        2
  •  6
  •   ewall    15 年前

    对于少量数据, Python's pickle module 对于存储您希望以后轻松访问的数据非常有用——只需从内存中提取数据对象,并将其写入用户主文件夹(适用于Linux等)或应用程序数据(适用于Windows)中的(隐藏)文件即可。

    如@aaronnasterling提到的,a sqlite3 file-based database 体积小、速度快、简单,难怪火狐和pidgin这样的流行程序会使用它。

        3
  •  5
  •   msw    15 年前

    对于100行,纯文本可以满足任何标准 ConfigParser csv 模块。

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

        4
  •  2
  •   user3092881    11 年前

    因为您只需要最后一个结果,所以只需存储结果,

    例如

    写(某物,wb)

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