代码改变世界

python pickle 和 shelve模块

2013-09-16 15:16  cmsd  阅读(485)  评论(0编辑  收藏  举报

pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧

1.pickle

   写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去

    dn = {'baidu':'www.baidu.com','qq':'www.qq.com','360':'www.360.cn'}

    name = ['mayun','mahuateng','liyanhong']

    f = open(r'C:\a.txt','w')

    pickle.dump(dn,f)      ##写一个对象

    pickle.dump(name,f)  ##再写一个对象

    f.close()  

   读:以读的方式打开文件描述符,调用pickle.load加载对象

    f = open(r'C:\a.txt')

    pickle.load(f)             ##加载一个对象

    pickle.load(f)             ##加载另一个对象

    f.close()

2.shelve

   shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写

   f = shelve.open(r'C:\b.txt')

   f  ##返回空字典

   f['baidu'] = 'www.baidu.com'

   f['qq'] = 'www.qq.com'

   f['360'] = 'www.360.cn'

   f  ##返回字典

   f.close()

   f = shelve.open(r'C:\b.txt')

   f ##返回字典f