Python使用pickle模块储存对象操作示例

yipeiwu_com5年前Python基础

本文实例讲述了Python使用pickle模块储存对象操作。分享给大家供大家参考,具体如下:

众所周知,当我们需要储存数据的时候,就需要用到重定向。但是,这些都是储存简单的数据类型,那么当我们需要存储一个类的实例的时候该怎么存储呢?

实际上,我们需要用到一个模块———pickle,翻译为泡菜坛子

首先贴上一篇:pickle的使用方法

然后贴上一份代码:

# -*- coding:utf-8 -*-
import pickle
class Person():
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def show(self):
    print(self.name + '_' + str(self.age))
if __name__ == "__main__":
  a = Person('tian', 20)
  a.show()
  c = Person('babydragon' ,5)
  f = open('test.txt', 'wb')#这里一定要加上b,因为文件默认的write不能是bytes类型的,可以自己尝试着删去看报错
  pickle.dump(a, f, 0)
  pickle.dump(c, f, 0)
  f.close()
  f = open('test.txt', 'rb')
  b = pickle.load(f)
  mm = pickle.load(f)
  cc = pickle.load(f)#有点类似于迭代器的感觉,这个就很强了,因为可以储存具体的实例666
  f.close()
  b.show()
  mm.show()
  print(b.name)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python logging管理不同级别log打印和存储实例

Python内置模块logging管理不同级别log打印和存储,非常方便,从此告别了使用print打桩记录,我们来看下logging的魅力吧 import logging lo...

Django中Middleware中的函数详解

一个middleware的例子 import time from django.urls import reverse from django.utils.deprecation...

win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题

1.Anaconda 安装python3.6 conda create -n match python=3.6 Python版本默认安装是 3.6.9 2.安装opencv 执行完毕后,...

使用django实现一个代码发布系统

使用django实现一个代码发布系统

一 前期说明: 我运行项目的环境是nginx+php,存储代码用的是gitlab, python版本:3.6 django版本:2.2.1 mysql版本:5.7 二 大体思路 1 需要...

Python利用heapq实现一个优先级队列的方法

Python利用heapq实现一个优先级队列的方法

实现一个优先级队列,每次pop的元素要是优先级高的元素,由于heapq.heapify(list)默认构建一个小顶堆,因此要将priority变为相反数再push,代码如下: imp...