day22_4-pickle模块


# 参考资料:
# python模块(转自Yuan先生) - 狂奔__蜗牛 - 博客园
# https://www.cnblogs.com/guojintao/articles/9070485.html

# ------------------------------------------------------------
# ********************day22_4-pickle模块 *******************
# ********************day22_4-pickle模块 *******************
# =====>>>>>>内容概览
# =====>>>>>>内容概览
'''
# ------------------------------------------------------------
# # 1、关于pickle 的解释
# # # Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它===>>>只能用于Python,
# # # 并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,
# # # 不能成功地反序列化也没关系。
# # # 数据进行编码之后,是bytes的格式(json是字符串格式)
# # # 编码后内容是一些我们无法识别的数据流
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 2、pickle 在文件储存上的应用
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 3、字典的用法补充(shelve开始前的知识补充)
# # # 可以刚开始的时候,可以先定义一个空字典,之后再通过赋值来添加
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 4、shelve
# # # shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,
# # # 可读可写;key必须为字符串,而值可以是python所支持的数据类型
# # # 编码数据之后,会默认生成三个文本生成,内容都是看不懂的,
# ------------------------------------------------------------

------------------------------------------------分割线-------------------------------------------------

------------------------------------------------分割线-------------------------------------------------

------------------------------------------------分割线-------------------------------------------------


'''
# ------------------------------------------------------------
# # 1、关于pickle 的解释
# # # Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它===>>>只能用于Python,
# # # 并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,
# # # 不能成功地反序列化也没关系。
# # # 数据进行编码之后,是bytes的格式(json是字符串格式)
# # # 编码后内容是一些我们无法识别的数据流
# ------------------------------------------------------------
'''
#
# import pickle
# dic = {'name':'alvin','age':23,'sex':'male'}
#
# print(type(dic))
#
# j = pickle.dumps(dic)
# print(type(j))
#
# # D:Anaconda3python.exe "D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_4- pickle.py"
# # <class 'dict'>
# # <class 'bytes'>
# #
# # Process finished with exit code 0



'''
# ------------------------------------------------------------
# # 2、pickle 在文件储存上的应用
# ------------------------------------------------------------
'''
#
# import pickle
# dic = {'name':'alvin','age':23,'sex':'male'}
#
# print(type(dic))
# print("序列化".center(60,"-"))
# j = pickle.dumps(dic)
# print(type(j),"
序列化完成")
#
# # 注意是w是写入str,wb是写入bytes,j是'bytes'
# f= open('序列对象_pickle','wb')
# f.write(j)
#
# # 如果不关闭,刚刚写入的数据还放在内存中,还没有写进去,导致下面读取到的数据是“空”
# # 关闭后,打开文件,里面的内容是一些我们无法识别的数据流
# # f.close()
# # 如果不用上面的关闭操作,可以将在内存中的文件流通到flush操作刷入内存中,下面就可以读取到数据了
# f.flush()
# print("返序列化".center(60,"-"))
# f= open('序列对象_pickle','rb')
# data = pickle.loads(f.read())
# print(data['age'],"
返序列化完成")
#
# # D:Anaconda3python.exe "D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_4- pickle.py"
# # <class 'dict'>
# # ----------------------------序列化-----------------------------
# # <class 'bytes'>
# # 序列化完成
# # ----------------------------返序列化----------------------------
# # 23
# # 返序列化完成
# #
# # Process finished with exit code 0




#
# ******************** shelve模块 *******************
# ******************** shelve模块 *******************
# ******************** shelve模块 *******************
#
'''
# ------------------------------------------------------------
# # 3、字典的用法补充(shelve开始前的知识补充) 
# # # 可以刚开始的时候,可以先定义一个空字典,之后再通过赋值来添加
# ------------------------------------------------------------
'''

# dic = {}
# print(dic)
# dic["name"] = "alex"
# print(dic)
# dic["infor"] = {"age":22,"sex":"male"}
# print(dic)
#
# # D:Anaconda3python.exe "D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_4- pickle.py"
# # {}
# # {'name': 'alex'}
# # {'name': 'alex', 'infor': {'age': 22, 'sex': 'male'}}
# #
# # Process finished with exit code 0



'''
# ------------------------------------------------------------
# # 4、shelve 
# # # shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,
# # # 可读可写;key必须为字符串,而值可以是python所支持的数据类型
# # # 编码数据之后,会默认生成三个文本生成,内容都是看不懂的,
# ------------------------------------------------------------
'''
#
# import shelve
# f = shelve.open(r"shelve.txt")
#
# f['stu1_info'  ] = {'name':'alvin','age':22,'sex':'male'}
# f['stu2_info'  ] = {'name':'ShaShu','age':33,'sex':'female'}
# f['school_info'] = {'website':'oldboyedu.com','city':'BeiJing'}
# # 如果不关闭,刚刚写入的数据还放在内存中,还没有写进去,导致下面读取到的数据是“空”
# # 关闭后,打开文件,里面的内容是一些我们无法识别的数据流,这个是由于编码的关系
# # f.close()
# # 没有该使用方式
# # f.flush()
# f = shelve.open(r"shelve.txt")
# print(f.get('stu1_info')['age'])
# f.close()
#
# # D:Anaconda3python.exe "D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_4- pickle.py"
# # 22
# #
# # Process finished with exit code 0

  

 
原文地址:https://www.cnblogs.com/jyfootprint/p/9439032.html