美文网首页
python 6: pickle模块

python 6: pickle模块

作者: 金石明镜 | 来源:发表于2019-11-07 18:03 被阅读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]

    相关文章

      网友评论

          本文标题:python 6: pickle模块

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