【问题标题】:Python Storing DataPython 存储数据
【发布时间】:2021-03-12 20:43:40
【问题描述】:

我的程序中有一个列表。我有一个附加到列表的功能,不幸的是,当你关闭程序时,你添加的东西消失了,列表又回到了开头。有什么方法可以存储数据,以便用户可以重新打开程序并且列表已满。

    标签: python storage


    【解决方案1】:

    您可以尝试pickle 模块将内存数据存储到磁盘中,这是一个示例:

    存储数据:

    import pickle
    dataset = ['hello','test']
    outputFile = 'test.data'
    fw = open(outputFile, 'wb')
    pickle.dump(dataset, fw)
    fw.close()
    

    加载数据:

    import pickle
    inputFile = 'test.data'
    fd = open(inputFile, 'rb')
    dataset = pickle.load(fd)
    print dataset
    

    【讨论】:

    • 要使pickle.dump().load() 调用正常工作,在您的open() 调用中,您可能需要分别传递"wb""rb" 标志。 More info in this SO answer
    【解决方案2】:

    您可以创建一个数据库并保存它们,唯一的方法就是这样。带有 SQLITE 或 .txt 文件的数据库。例如:

    with open("mylist.txt","w") as f: #in write mode
        f.write("{}".format(mylist))
    

    您的列表进入format() 函数。它会生成一个名为mylist 的.txt 文件,并将您的列表数据保存到其中。

    之后,当您想再次访问您的数据时,您可以执行以下操作:

    with open("mylist.txt") as f: #in read mode, not in write mode, careful
        rd=f.readlines()
    print (rd)
    

    【讨论】:

      【解决方案3】:

      内置的pickle 模块提供了一些基本功能序列化,这是一个术语,用于将任意对象转换为适合写入磁盘的对象。查看Python 2Python 3 的文档。

      虽然 Pickle 不是很健壮,但对于更复杂的数据,您可能需要查看数据库模块,如内置的 sqlite3 或成熟的对象关系映射(ORM),如 SQLAlchemy。

      【讨论】:

        【解决方案4】:

        对于存储大数据,HDF5 库是合适的。它由 Python 中的h5py 实现。

        【讨论】:

          猜你喜欢
          • 2016-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-04
          • 2010-10-26
          相关资源
          最近更新 更多