Python Pickle序列化

Pickle序列化的使用

 

 

介绍:序列化将一段命令转换成字符串,上传到文件内,

   用的时候在从文件内把字符串转回命令,

   从而实现一个挂起的功能。

 

案例1:

需求:使用pickle模块,在字典中将函数数据类型进行转换,并调用。

 1 #序列化
 2 def xsk():
 3     print("Kevin")
 4 info = {
 5     'name':'alex',
 6     'age':'22',
 7     "Kevin":xsk
 8 }
 9 
10 
11 f = open("test.txt","wb")
12 import pickle
13 f.write(pickle.dumps(info))
14 f.close()
15 
16 #反序列化
17 def xsk():
18     print("66666666")
19 import pickle
20 f = open("test.txt","rb")
21 data = pickle.loads(f.read())
22 data["Kevin"]()

 

案例2:

需求:使用pickle,将转换数据导入到,文件中。

 1 def xsk():
 2     print("Kevin")
 3 info = {
 4     'name':'alex',
 5     'age':'22',
 6     "Kevin":xsk
 7  }
 8 f = open("test.txt","wb")
 9 import pickle
10 pickle.dump(info,f)

 

 

案例3:

需求:使用pickle读取文件中的内容。

1 def xsk():
2     print("66666666")
3 import pickle
4 f = open("test.txt","rb")
5 data = pickle.load(f)
6 data["Kevin"]()

 

 

二.pickle可支持的python数据格式。

写入

import shelve

d = shelve.open("shelve_test")

info = {'age':22}

d["info"] = info

 

读取

import shelve

d = shelve.open("shelve_test")

d.get("info")

注:写入文件内容,会固定内存数据。

get是读取指定数据。

items是读取全部数据。

 

注:pickle只有在python语言中可以使用。

注:pickle默认显示二进制需要加上参数b

注:函数在转换的过程中转换的是指定的数据,不是内存地址。两个程序间的内存是不可以访问的。

注:pickle.dumps("命令"):将命令行转换成字符串。

注:pickle.loads("字符串"):将字符串转回命令。

注:pickle.load(文件名):可以实现读取文件的功能。

注:json.load(文件名):可以实现读取文件的功能。

注:写入文件,推荐只写入一次,因为默认只有一行。

注:如果要写入多次,推荐写入到不同的文件内。

 

 

 

posted @ 2017-11-01 17:20  kevin.Xiang  阅读(838)  评论(0编辑  收藏  举报