美文网首页PythonAdvanced
用pickle读写对象(Python)

用pickle读写对象(Python)

作者: Ellipsis2049 | 来源:发表于2019-04-17 18:07 被阅读0次

    用pickle模块来保存和加载对象。

    pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
    pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,pickle序列化后的数据,可读性差,人一般无法识别。

    '''
    将名为lyst的列表中对象保存到一个名为item.dat的文件中。
    我们不需要知道列表中的对象是什么类型,有多少个对象。
    python负责所有的转换细节。
    也可以将整个列表写入一个文件中,而不是将其每个对象写入,
    但是对那些基于链表结构的集合,我们不能这么做。
    '''
    import pickle
    
    lyst = [60, "a string object", 2049]
    fileobj = open('items.dat', 'wb')
    for item in lyst:
        pickle.dump(item, fileobj)  # 保存对象用pickle.dump函数
    fileobj.close()
    

    任何对象都可以被封装(pickled),然后再保存到文件中。然后,随着你将其从文件中加载到程序,对它们进行拆封(unpickled)。pickle.dump()的第一个参数是要存储到文件中的对象,第二个参数是一个文件对象。

    '''
    pickle.load(),在文件抵达末尾时会引发一个异常。用try-except捕获
    '''
    import pickle
    lyst = list()
    fileobj = open('items.dat', 'rb')
    while True:
        try:
            item = pickle.load(fileobj)
            lyst.append(item)
        except EOFError:
            fileobj.close()
            break
    print(lyst)
    

    pickle.load()将封装的对象从一个文件加载到一个程序中。

    相关文章

      网友评论

        本文标题:用pickle读写对象(Python)

        本文链接:https://www.haomeiwen.com/subject/hbznwqtx.html