zoukankan      html  css  js  c++  java
  • python 对象存储///对象序列化

    如果你有写数据来之不易,并且希望每次都可以方便的读取,那么存储为一个对象是一个很不错的解决方法

    方法一、

    
    
    import pickle    #首先要导入包

    dics={'a':4,'b':5,'c':6}#要保存的数据集或者一个对象也行,这里以字典对象为例

    #把dics字典写入到二进制文件‘bat.data’中(名字后缀都还可以随意)
    with open('bat.data','wb') as f: #f.write( pickle.dumps(list) ) pickle.dump(list,f) #上面注释的意义完全一样。


    #读取保存的对象 with open('bat.data','rb') as f: # data = pickle.loads(f.read()) data = pickle.load(f) #跟上面的data = pickle.loads(f.read())语意完全一样。 print(data)


    输出:
    {'a': 4, 'b': 5, 'c': 6}

    可以看出读取的直接是一个字典(敲黑板!!)

    方法二、

    
    
    封装成函数直接调用就行
    
    
    import pickle    #首先要导入包

    def
    readbunchobj(self,path): file_obj = open(path, 'rb') bunch = pickle.load(file_obj) file_obj.close() return bunch def writeBunchobj(self,path, bunchobj): file_obj = open(path, 'wb'
    ) pickle.dump(bunchobj, file_obj) file_obj.close()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      注:

    cPickle包:

    cPickle包的功能和用法与pickle包几乎完全相同 (其存在差别的地方实际上很少用到),不同在于cPickle是基于c语言编写的,速度是pickle包的1000倍。对于上面的例子,如果想使用cPickle包,我们都可以将import语句改为:

    import cPickle as pickle

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

    参考:

    https://www.cnblogs.com/saryli/p/5098893.html

  • 相关阅读:
    ERP/MIS开发 30道ORM问题与解答 LLBL Gen 3.x Adapter
    升级LLBL Gen 2.x项目到3.x
    软件公司为什么要加密源代码,而且是前前后后,反反复复
    ERP/MIS系统中集成命令行式的功能调用
    工作多年后才明白的.NET底层开发技术
    OSGI:从面向接口编程来理解OSGI
    幸福框架:如何阅读幸福框架的代码
    OSGI:C#如何实现简单的OSGI
    技术人生:技术之路,需要的是热情和梦想
    EHR:对人力资源信息系统的认识
  • 原文地址:https://www.cnblogs.com/51python/p/10534237.html
Copyright © 2011-2022 走看看