`
yuanta11
  • 浏览: 60830 次
  • 性别: Icon_minigender_1
  • 来自: 淄博
社区版块
存档分类
最新评论

Python第六课-持久化相关的另一个模块pickle

阅读更多
第五课中处理持久化的方法还是有待商榷

第五课中我们利用nester模块中的print_lol函数对写入文本文件的列表进行了格式化,确保数据的可用性。
可如果我们需要写入其他的数据格式呢?难道要对每一种数据格式都创建一个格式化方法?
要累死程序猿吗?码农也是人啊!

Gudio还有有人情味儿的,python的标准库中有一个pickle模块可以解决这个问题!


使用pickle模块持久化数据

pickle模块可以保存各种数据类型的原始状态,我们不必再为数据写入文件前的格式化而担心了!

将第四课中的代码做如下修改:
'''使用pickle模块持久化各种数据类型的数据'''

import pickle

man = [] 
other = []

try:
    data = open('sketch.txt')
    try:
        for each_line in data:
            (role, line_spoken) = each_line.split(':', 1)
            line_spoken = line_spoken.strip()
            if role == 'man':
                man.append(line_spoken)
            else:
                other.append(line_spoken)
    except ValueError:
        pass
    data.close()
except IOError as ioerr:
    print('File Error :' + str(ioerr))

try:
    with open('man_data.txt', 'wb') as man_file, open('other_data.txt', 'wb') as other_file: #由于pickle以二进制模式存储数据,所以我们需要'wb'参数来以二进制方式操作文件
        pickle.dump(man, file = man_file) #dump是pickle中的一个方法,用来写入数据
        pickle.dump(other, file = other_file)
except IOError as ioerr:
    print('File Error: ' + str(ioerr))
except pickle.PickleError as perr:
    print('Pickling Error: ' + str(perr)) #pickle的异常


这样,我们使用pickle对处理完毕。接下来取出数据看看,是否如我们所愿。
import pickle

man_data = []

try:
    with open('man_file.txt', 'rb') as fman: #用二进制方式打开文件
        man_data = pickle.load(fman) #pickle中的load方法用于从文件对象中取出数据
except IOError as ioerr:
    print('File Error: ' + str(ioerr))
except pickle.PickleError as perr:
    print('Pickling Error: ' + str(perr))

print(man_data)

接下来我们可以看到输出到控制台的列表了!

OK~!干完,手工!
分享到:
评论

相关推荐

    python3内置持久化模块pickle心得

    内置模块 pickle 可以将 python 文件对象转换为 python 专用格式存储到硬盘以便于持久保存。 模块 pickle 可以处理: 所有python支持的原生类型:布尔值,整数,浮点数,复数,字符串,字节,None 。 由任何原生类型...

    python3内置持久化模块shelve心得

    内置模块 shelve 可以将任意 Python 对象(pickle 模块能够处理的任何东西。)以类似字典的对象(shelf 对象)存在磁盘上以实现数据的持久保存。模块 shelve 生成的类似字典的对象 shelf 包含键 key 和 值 value 。...

    Python使用pickle模块存储数据报错解决示例代码

    pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。 pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化, pickle序列化后的...

    python-turtle模块-pickle模块-密码程序-可更改或设置密码

    原创python密码程序 知识领域: turtle模块-输入框 pickle模块-保存数据至txt文本文档 密码程序 可从Set_password.py更改密码 从Password.py运行 如有雷同纯属巧合

    Python中的数据对象持久化存储模块pickle的使用示例

    主要介绍了Python中的数据对象持久化存储模块pickle的使用示例,重点讲解了pickle中模块中对象持久化和文件读取的相关方法,需要的朋友可以参考下

    Python库 | pickle-mixin-1.0.2.tar.gz

    python库。 资源全名:pickle-mixin-1.0.2.tar.gz

    Python-Pickle-RCE-Exploit:具有易受攻击的Flask App的简单RCE PoC

    在Python中,pickle模块可让您序列化和反序列化数据。 从本质上讲,这意味着您可以将Python对象转换为字节流,然后稍后在其他进程或环境中通过加载该字节流来重建它(包括对象的内部结构)(有关更多信息,请参见:...

    The-windows-pickle-login-tkinter-python-project

    The-windows-pickle-login-tkinter-python-project Python的标准TK GUI工具包的接口Tkinter模块(“TK界面”)是Python的标准TK GUI工具包的接口。 TK和Tkinter可以用于大多数UNIX平台,也可以应用于windows和麦金塔...

    pickle训练模块的存取案例

    pickle模块是Python专用的持久化模块,可以持久化包括自定义类在内的各种数据,比较适合Python本身复杂数据的存贮。但是持久化后的字串是不可认读的,并且只能用于Python环境,不能用作与其它语言进行数据交换。在...

    Python编程零基础入门

    6-4第三方模块的安装 7-1类与面向对象设计OOP 7-2多态、继承和封装 7-3类装饰器 8-1异常和警告 8-2try-except语句和结构 8-3排查错误方法 8-4编码方式介绍 9-1文件内建方法:打开和读写 9-2文件的存储模块:pickle和...

    第四周-第16章节-Python3.5-Json与pickle数据序列化.avi

    第四周-第16章节-Python3.5-Json与pickle数据序列化.avi

    python模块

    所有的这些模块提供了一个对象实现了基于字符串的持久化的字典,他与字典dict非常相似,但是他的keys和values都必须是字符串。 * shelve:shelve模块使用特殊的“shelf”对象来支持持久化对象。这个对象的行为与dict...

    详解Python3 pickle模块用法

    pickle(python3.x)和cPickle(python2.x的模块)相当于java的序列化和反序列化操作。 常采用下面的方式使用: import pickle pickle.dump(obj,f) pickle.dumps(obj,f) pickle.load(f) pickle.loads(f) 使用pickle模块...

    python持久性管理pickle模块详细介绍

    主要介绍了python持久性管理pickle模块详细介绍,本文讲解了什么是持久性、一些经过 pickle 的 Python等内容,并讲给出了18个使用示例,需要的朋友可以参考下

    Python pickle模块实现对象序列化

    这篇文章主要介绍了Python pickle模块实现对象序列化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 作用 对Python对象进行序列化,便于存储和传输 Python...

    Python pickle模块用法实例分析

    pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。 pickle.dump(obj, file[, protocol]) 序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的...

    Python序列化pickle模块使用详解

    用于序列化的两个模块 json:用于字符串和Python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 json提供四个功能:dumps,dump,loads,load pickle提供四个功能:dumps,dump,...

    Python使用pickle模块实现序列化功能示例

    主要介绍了Python使用pickle模块实现序列化功能,结合实例形式分析了基于pickle模块的序列化操作相关操作技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics