使用pickle模块存储对象

import time
import hashlib
import pickle
import os
class Info():
    def __init__(self):
        self.create_time=time.time()

    def md5(self):
        m=hashlib.md5()
        m.update(str(self.create_time).encode(‘utf-8‘))
        return m.hexdigest()
    def save(self):
        if not os.path.exists(‘md5‘):
            os.mkdir(‘md5‘)
        os.chdir(‘md5‘)
        print(self.md5())
        with open(self.md5(),‘wb‘) as f:
            pickle.dump(self,f)
    @staticmethod
    def read():
        path=r‘C:\Users\Administrator\模块\md5‘
        res=os.listdir(path)
        for item in res:
            file_path=r‘%s\%s‘%(path,item)
            # print(file_path)
            with open(file_path,‘rb‘) as f:
                # print(f)
                try:
                    obj=pickle.load(f)
                except Exception as e:
                    pass
                print(obj.create_time)

i=Info()
print(i.md5())
i.save()
i.read()
时间: 2024-10-10 00:41:11

使用pickle模块存储对象的相关文章

Pickle模块数据对象持久化操作

Pickle模块的作用是持久化(序列化)的储存数据.因此我先解释下:什么是序列化与反序列化.什么是对象序列化和对象反序列化.通俗地讲,它们的定义如下:序列化: 把一个对象保存到一个文件或数据库字段中去:反序列化: 在适当的时候把这个文件再转化成原来的对象使用:对象的序列化: 把对象转换为字节序列的过程:对象的反序列化: 把字节序列恢复为对象的过程: 使用场合:使用序列化主要是因为跨平台和对象存储的需求,因为网络上只允许字符串或者二进制格式,而文件需要使用二进制流格式.如果想把一个内存中的对象存储

python0.11-----文件/编码和解码/pickle模块

文件:python中的文件读写和c兼容,磁盘上的读写由操作系统完成,一般的程序无法操作磁盘.文件读写是通过操作系统对象完成,该对象称为文件描述符. 文件的操作分两种: 1.打开文件open(path,flag[,encoding][,errors])path:要打开文件的路径.flag:打开方式. r:以只读的方式打开文件.文件的(描述符)指针放在文件开头. rb:以二进制格式打开一个文件用于只读,文件描述符放在文件开头. r+:打开一个文件用于读写,文件描述符放到开头. w:打开文件只用于写入

python json,pickle模块

json模块 不同语言间的数据交互 eval方法可以将一个字符串转成python对象,但eval方法是有局限性,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型(函数.类等)的时候,eval就不管用了,因此eval通常用来执行一个字符串表达式,并返回表达式的值. dic='{"name":"alex"}' f=open('hello','w') f.write(dic) #eval方法将字符串转换为python的数据类型 f_read=ope

[转]python数据持久存储:pickle模块的基本使用

python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象. 基本接口: pickle.dump(obj, file, [,protocol]) 注解:将对象obj保存到文件file中去. protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示:1:老式的二进制协议:2:2.3版本引

python数据持久存储:pickle模块的使用

python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象. 基本接口: pickle.dump(obj, file, [,protocol]) 注解:将对象obj保存到文件file中去. protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示:1:老式的二进制协议:2:2.3版本引

python数据持久存储:pickle模块的基本使用

参考 http://www.cnblogs.com/pzxbc/archive/2012/03/18/2404715.html python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象. 基本接口: pickle.dump(obj, file, [,protocol]) 注解:将对象obj保存到文件file中去. protoco

Python数据对象的编码和解码,json和pickle模块,base64模块的简单使用

1.面向对象 对象:生活中的客观事物 类:对事物的抽象,在代码中实现class类型 类属性:这类事物具有的特点或者属性 类方法:这类事物具有的行为,可以实现的方法 实例:使用之前对类的实例化之后的结果 实例属性:对象具有的一些描述对象或者形容对象的属性,对象具体具有的特性 实例方法:对象具有的方法,行为动作 1.查看对象所拥有的方法 dir(对象) 例如 print(dir(列表))1.类中的实例(类)属性和方法命名风格 属性:名词 方法:动词 2.Python中万物皆对象 _对象名,对象私有化

[转]python pickle模块

持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让您更深一步地了解Python 的对象序列化能力. 什么是持久性? 持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检索.这就是持久性.要达到这个目的,

Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 5.1 使用sys.argv进行登录判断,跳过 i/o阻塞 #使用sys.argv进行登录判断,跳过 i/o阻塞 import s