Python+pickle读写二进制文件小案例
对于二进制文件,不能使用记事本或其他文本编辑软件进行正常读写,也无法通过Python的文件对象直接读取和理解二进制文件的内容。必须正确理解二进制文件结构和序列化规则,才能准确地理解二进制文件内容并且设计正确的反序列化规则。
所谓序列化,简单地说就是把内存中的数据在不丢失其类型信息的情况下转成对象的二进制形式的过程,对象序列化后的形式经过正确的反序列化过程应该能够准确无误地恢复为原来的对象。
Python中常用的序列化模块有struct、pickle、marshal和shelve,本文主要介绍pickle模块的用法。
import pickle
# 要序列化的数据
i = 13000000
a = 99.056
s = '中国人民123abc'
lst = [[1, 2, 3], [4, 5, 6]]
tu = (-5, 10, 8)
coll = {4, 5, 6}
dic = {'a':'apple', 'b':'banana'}
# 把要序列化的数据放入一个列表
data = [i, a, s, lst, tu, coll, dic]
# 创建二进制文件并写入序列化后的数据
with open('sample_pickle.dat', 'wb') as f:
try:
# 后面将要写入的数据个数
pickle.dump(len(data), f)
for item in data:
pickle.dump(item, f)
except:
# 如果写文件异常则跳到此处执行
print('写文件异常!')
with open('sample_pickle.dat', 'rb') as f:
# 首先读取数据个数
n = pickle.load(f)
# 依次读取并反序列化数据
for i in range(n):
x = pickle.load(f)
print(x)
----------我是分割线----------
相关阅读:
Python+shelve读写二进制文件
Python+pickle读写二进制文件小案例相关推荐
- python摇骰子游戏小案例
python摇骰子游戏小案例 小案例: import random#充值函数 def topup():global moneyn = input('充值金额(100元等于30个金币充值金额不低于100 ...
- python招聘广州黄埔_小案例:用Pandas分析招聘网Python岗位信息
小案例: Python岗位分析_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com 1. 读取数据 import pandas as pd import numpy ...
- Python 21 Django 实用小案例1
实用案例 验证码与验证 KindEditor 组合搜索的实现 单例模式 beautifulsoup4 验证码与验证 需要安装Pillow模块 pip stall pillow ...
- Python批量整理文件名小案例(附公众号第一批赠书活动中奖名单)
问题背景:用了半年时间录制了200集Python视频,内容结合了我系列教材<Python程序设计基础>.<Python程序设计(第2版)>和<Python可以这样学> ...
- Python+shelve读写二进制文件
Python标准库shelve提供了二进制文件操作的功能,可以像字典一样赋值即可写入文件,也可以像字典一样读取二进制文件,有点类似于NoSQL数据库MongoDB的操作. >>> i ...
- python营业数据分析_小案例-使用python进行销售数据分析
数据分析步骤:提出问题.理解数据.数据清洗.构建模型.数据可视化 数据:朝阳医院2018年销售数据 一.提出问题 从销售数据中分析以下业务指标:月均消费次数.月均消费金额.客单价.消费趋势 二.理解数 ...
- python爬虫__简单小案例
手把手教你,Python爬取招聘信息.一学就会,一写就废. 零基础的同学也能上手的,简单详细的python爬虫教学,也是经验的分享. 话不多说我们直接进入主题. 本次用到的python爬虫第三方库. ...
- python新版个人所得税_Python 小案例 计算个人所得税
#coding=utf-8 monthMoney=input("请输入月收入:") ds=3500 #扣除标准 threeInsurancesUp=7662#三险一金上线 yang ...
- python可视化窗口制作一个摇骰子游戏_python摇骰子游戏小案例
python摇骰子游戏小案例 小案例: import random #充值函数 def topup(): global money n = input('充值金额(100元等于30个金币充值金额不低于 ...
最新文章
- 修改js文件需要重启服务器,关于Node.js中频繁修改代码重启服务器的问题
- python代码大全下载-最全Python算法实现资源汇总!
- Hibernate openSession() 和 getCurrentSession的区别 .
- (64位oracle使用32位的PLSQL)安装64位的oracle数据库软件,使用32位的PLSQL Developer连接方法...
- GAN之父NIPS 2016演讲现场直击:全方位解读生成对抗网络的原理及未来(附PPT)
- matlab神经网络每次相差大,GA-BP网络为什么每次训练的结果相差很大呢?
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
- (59)简单介绍RAM IP核类型和接口信号?
- 微信支付携手云闪付APP上线支付立减新优惠
- android 显示清除缓存
- 淘宝SOA框架dubbo学习(2)--搭建Zookeeper注册中心服务
- python学了真的很有用吗-python学了真的很有用吗?当然!赶紧学,不学后悔!
- java mapxtreme_mapxtreme java 初始化地图
- f2fs学习笔记 - 3. F2FS文件系统布局
- 当我们在谈论机器人的时候我们在谈论什么?
- Nginx简单入门与反向代理和负载均衡
- sprd 11 隐藏桌面apk图标
- FPGA采集AD7606串行输源码加讲解
- 席慕容《写给幸福》读记
- Xposed 反检测
热门文章
- java字符串相关知识
- 城市流动劳动力的数学模型matlab,数学建模_人口预测
- php include virtual,虚拟主机中对PHP的特殊设置
- java 类型推导_Java10类型推导
- Android自定义控件学习(四)------创建一个视图类
- okhttp框架学习
- 基于JAVA+SpringMVC+Mybatis+MYSQL的医院预约挂号系统
- 69.Daily Temperatures(日常气温)
- $Django 聚合函数、分组查询、F,Q查询、orm字段以及参数
- 2011 ACM 0和1思想