仅仅支持Python里面的函数等相关功能的实现,而且pickle写入的内容是看不出来的,读取的时候要求有原内容
pickled的写入:
import pickle def fun(): print('ok') data = pickle.dumps(fun) # print(type(data)) # <class 'bytes'> # 注意这里是wb写入,b是二进制的意思,将里面的内容转换为bytes写入 # 否则写入的是str类型, write() argument must be str, not bytes # 不要加入编码,否则会报错,binary mode doesn't take an encoding argument with open('pickle.txt', 'wb')as file: file.write(data)
pickle的读取:
import pickle def fun(): print('ok') # 注意这里是rb读取,b是二进制的意思,读取里面的内容转换为bytes写入 # 读取的时候,一定要添加原来的函数,否则找不到那段内存的指引,报错 # 不要加入编码,否则会报错,binary mode doesn't take an encoding argument with open('pickle.txt', 'rb')as file: data = file.read() pickle_data = pickle.loads(data) print(type(pickle_data)) pickle_data()
注意:pickle也有load()和dump()方法,参考json