python中pickle使用学习-字典小程序学习

简介:

'''
Pickle模块中最常用的函数为:
(1)pickle.dump(obj, file, [,protocol])
函数的功能:将obj对象序列化存入已经打开的file中。
参数讲解:
obj:想要序列化的obj对象。
file:文件名称。
protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。
(2)pickle.load(file)
函数的功能:将file中的对象序列化读出。
参数讲解:
file:文件名称。
(3)pickle.dumps(obj[, protocol])
函数的功能:将obj对象序列化为string形式,而不是存入文件中。
参数讲解:
obj:想要序列化的obj对象。
protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。
(4)pickle.loads(string)
函数的功能:从string中读出序列化前的obj对象。
参数讲解:
string:文件名称。
【注】 dump() 与 load() 相比 dumps() 和 loads() 还有另一种能力:dump()函数能一个接着一个地将几个对象序列化存储到同一个文件中,随后调用load()来以同样的顺序反序列化读出这些对象。

'''


# pickle模块主要函数的应用举例
import pickle

dataDic = {}
data1 = {}

help = u'''
1:add a word
2:find a word meaning
3: delete a word
input bye to exit
'''

print help

while True:
    command = raw_input("please input your command:\n")
    if command == str(1):
        word = raw_input("please input your word:")
        word_meaning = raw_input("please input your word meaning:")
        fr = open('dataFile.kpl', 'rb')
        data1 = pickle.load(fr)
        if data1.has_key(word):
            print '你输入的单词已经存在了!!'
            fr.close()
            continue
        fw = open('dataFile.kpl', 'wb')
        dataDic[word] = word_meaning
        pickle.dump(dataDic, fw)
        print '单词添加完毕!'
        fw.close()
    if command == str(2):
        word = raw_input("please input your word to find:")
        fr = open('dataFile.kpl', 'rb')
        data1 = pickle.load(fr)
        if data1.has_key(word):
            print '你查找的单词是:',data1[word]
            fr.close()
            continue
        print '你找的单词不存在!'
    if command == str(3):
        word = raw_input("please input your word to delete:")
        fr = open('dataFile.kpl', 'rb')
        data1 = pickle.load(fr)
        if data1.has_key(word):
            print '你要删除单词是:', data1[word]
            del data1[word]
            print '删除成功!,欢迎下次再使用!!'
            fr.close()
            continue
        print "word to delete is not found!"
    if command == "bye":
            print '欢迎下次在次使用!!'
        break

1:add a word
2:find a word meaning
3: delete a word
input bye to exit

please input your command:
1
please input your word:lwen
please input your word meaning:kk
单词添加完毕!
please input your command:
1
please input your word:liwen
please input your word meaning:美丽的开始
单词添加完毕!
please input your command:
1
please input your word:liwen
please input your word meaning:美丽的开始
你输入的单词已经存在了!!
please input your command:
乘法
please input your command:
1
please input your word:加油
please input your word meaning:加油
单词添加完毕!
please input your command:
2
please input your word to find:加油
你查找的单词是: 加油
please input your command:
3
please input your word to delete:加油
你要删除单词是: 加油
删除成功!,欢迎下次再使用!!
please input your command:
欢迎下次在次使用!
bye

=============================

dataList=[1,3,4,5,[34,4,5]]
dataDic = {'a':1,'b':3}

下面是参考代码:


# 使用dump()将数据序列化到文件中
fw = open('dataFile.kpl', 'wb')
# Pickle the list using the highest protocol available.
pickle.dump(dataList, fw, -1)
# Pickle dictionary using protocol 0.
pickle.dump(dataDic, fw)
fw.close()

# 使用load()将数据从文件中序列化读出
fr = open('dataFile.kpl', 'rb')
data1 = pickle.load(fr)
print(data1)
data2 = pickle.load(fr)
print(data2)
fr.close()

# 使用dumps()和loads()举例
p = pickle.dumps(dataList)
print(pickle.loads(p))
p = pickle.dumps(dataDic)
print(pickle.loads(p))









本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/2047013,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
存储 算法 API
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
289 82
|
1天前
|
数据采集 机器学习/深度学习 自然语言处理
Python学习的自我理解和想法(16)
这是我在B站千锋教育课程中学Python的第16天总结,主要学习了`datetime`和`time`模块的常用功能,包括创建日期、时间,获取当前时间及延迟操作等。同时简要介绍了多个方向的补充库,如网络爬虫、数据分析、机器学习等,并讲解了自定义模块的编写与调用方法。因开学时间有限,内容精简,希望对大家有所帮助!如有不足,欢迎指正。
|
1天前
|
数据挖掘 Python
Python学习的自我理解和想法(14)
这是学习Python第14天的总结,基于B站千锋教育课程内容。重点介绍了`math`模块的常用功能,如取绝对值、向上/向下取整、计算π值、幂运算、对数、三角函数等。这些函数广泛应用于科学计算、数据分析和工程领域。通过掌握`math`模块,可实现高效数学运算,甚至编写计算器程序。尽管开学后时间有限,但仍坚持每天学习一到两个模块,希望读者谅解内容简略之处。如有错误,欢迎指正!
|
1天前
|
Python
Python学习的自我理解和想法(12)
本文记录了学习Python第12天的内容,主要包括回调函数、闭包函数、函数作用域、filter方法、map方法和装饰器函数等核心概念。通过定义、语法、实例及优缺点分析,深入浅出地讲解了这些技术的应用场景与实现方式。其中,回调函数适合异步编程,闭包可访问外部变量,装饰器用于增强函数功能而不改变原代码。文章基于B站千锋教育课程整理,非原创代码,旨在分享学习心得,欢迎指正!
|
1月前
|
小程序 Java 关系型数据库
weixin030英语学习交流平台小程序+ssm(文档+源码)_kaic
本文介绍了英语学习交流平台小程序的开发全过程,包括系统分析、设计与实现。该小程序基于Java的SSM框架进行后端管理开发,使用MySQL作为数据库,并借助微信开发者工具确保系统稳定性。小程序设有管理员和用户两个角色,功能涵盖个人中心、每日打卡、学习计划、论坛交流等,具有操作简单、界面清晰、功能齐全的特点。通过技术可行性、经济可行性和操作可行性分析,证明了系统的实用性和高效性,为英语学习者提供了一个便捷的交流平台。
|
1天前
|
Python
Python学习的自我理解和想法(15)
这是作者学习Python第15天的总结,基于B站千锋教育课程内容。文章主要介绍了`OS模块`和`random模块`的常用功能。`OS模块`涵盖文件与文件夹的操作,如获取当前目录、创建/删除文件夹、重命名、判断文件是否存在等;`random模块`则包含生成随机数及从列表中随机抽取数据的功能。因开学时间有限,内容精简为每天一到两个模块的学习笔记,附带作者的理解与语法示例,欢迎指正交流。
|
1天前
|
Python
Python学习的自我理解和想法(13)
这是我在学习Python第13天的总结,基于B站千锋教育课程内容。主要学习了模块的基础知识和pip工具的使用。模块是包含Python定义和语句的文件,可通过多种方式导入(如import、from...import等)。pip用于管理Python扩展包,支持安装、卸载、更新等功能。虽然开学后时间有限,但我会坚持学习并不断完善理解。如有错误,欢迎指正!
|
27天前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
1月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
38 4
|
2月前
|
存储 API 数据安全/隐私保护
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
124 6

热门文章

最新文章