python中pickle模块的应用


import pickle
# pickle 可用于python中的所有数据类型,但不可跨语言
dic1 = {'name': 'rock'}
dic2 = {'name': 'chen'}
dic3 = {'name': 'zi'}
# dumps loads 用于网络传输 :将数据结构 ----> 转化成bytes
s1 = pickle.dumps(dic1)
print(s1)
dic = pickle.loads(s1)
print(dic, type(dic))

# pickle可以写入多信息到文件并读出
with open('p2.pickle', mode='wb') as f1:
    pickle.dump(dic1, f1)
    pickle.dump(dic2, f1)
    pickle.dump(dic3, f1)

with open('p2.pickle', mode='rb') as f1:
    ret1 = pickle.load(f1)
    ret2 = pickle.load(f1)
    ret3 = pickle.load(f1)
print(ret1, ret2, ret3)

 用pickle存取对象

import pickle


class Student:
    def __init__(self, name):
        self.name = name


def pickle_dump(obj):
    f1 = open('test', 'ab')
    pickle.dump(obj, f1)
    f1.close()
    print('success')


def pickle_load(fpath):
    f1 = open(fpath, 'rb')
    while True:
        try:
            stu_obj = pickle.load(f1)
            print(stu_obj.name)
        except EOFError:
            break
    f1.close()


# s1 = Student('s1')
# s2 = Student('s2')
# pickle_dump(s1)
# pickle_dump(s2)
pickle_load('test')     # s1 s2

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM