python pickle 和 shelve模块的用法

yipeiwu_com7年前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

相关文章

Python中二维列表如何获取子区域元素的组成

Python中二维列表如何获取子区域元素的组成

用过NumPY的应该都知道,在二维数组中可以方便地使用区域切片功能,如下图: 而这个功能在Python标准库的List中是不支持的,在List中只能以一维方式来进行切片操作: 但有时...

用Python中的__slots__缓存资源以节省内存开销的方法

用Python中的__slots__缓存资源以节省内存开销的方法

我们曾经提到,Oyster.com的Python web服务器怎样利用一个巨大的Python dicts(hash table),缓存大量的静态资源。我们最近在Image类中,用仅仅一行...

Python实现多行注释的另类方法

Python程序的注释感觉很不合群,对于习惯了使用/**/多行注释的人来说,到Python中只能使用#号进行单行注释很痛苦。 复制代码 代码如下: # 这里是单行注释 # a = 50...

python使用minimax算法实现五子棋

这是一个命令行环境的五子棋程序。使用了minimax算法。 除了百度各个棋型的打分方式,所有代码皆为本人所撸。本程序结构与之前的井字棋、黑白棋一模一样。 有一点小问题,没时间弄了,就这样...

numpy 对矩阵中Nan的处理:采用平均值的方法

尽管我们可以将所有的NaN替换成0,但是由于并不知道这些值的意义,所以这样做是个下策。如果它们是开氏温度,那么将它们置成0这种处理策略就太差劲了。 下面我们用平均值来代替缺失值,平均值根...