python 6: pickle模块

2019-11-07  本文已影响0人  金石明镜

在内存中操作,用dumps()和loads

对文件操作,dump()和load(不通过文件的write()和read())

如果通过文件的write()和read(),则用dumps()和loads。这时用内存作了中介。

1 在内存中的操作,用dumps()和loads(),它们各有一个参数

>>>li=[1,2,3]

>>>r=pickle.dumps(li)

>>>print(r)

b'\x80\x03]q\x00(K\x01K\x02K\x03e.'

>>>s=pickle.loads(r)

>>>print(s)

[1,2,3]

2 写入文件,用dump(),它有两个参数,后一个是文件

>>>li=[1,2,3]

>>>pickle.dump(li,open('db','wb'))

或者:

>>>li=[1,2,3]

>>>f=open('db','wb')

>>>pickle.dump(li,f)

3 从文件读出,用load(),它有一个参数:文件

>>>r=pickle.load(open('db','rb'))

>>>print(r)

[1,2,3]

或者

>>>f=open('db','rb')

>>>r=pickle.load(f)

>>>print(r)

[1,2,3]

4 写入文件的另一种方法,使用文件的write方法,就使用dumps()

说明:是先通过pickle.dumps()写到内存,再用f.write()写到文件

>>>li=[1,2,3]

>>>open('db','wb').write(pickle.dumps(li))

或者

>>>li=[1,2,3]

>>>f=open('db','wb')

>>>f.write(pickle.dumps(li))

5 从文件读出的另一种方法,使用文件的read()方法,就使用loads()

说明:是先通过f.reads()从文件读入内存(这时是二进制),再用pickle.loads()送到变量(变为指定类型)。

>>>r = pickle.loads(open('db','rb').read())

>>>print(r)

[1,2,3]

或者

>>>f=open('db','rb')

>>>r=pickle.loads(f.read())

>>>print(r)

[1,2,3]

上一篇下一篇

猜你喜欢

热点阅读