python中IO流和对象序列化实例分析
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章主要介绍了python中IO流和对象序列化实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中IO流和对象序列化实例分析文章都会有所收获,下面我们
千家信息网最后更新 2025年02月19日python中IO流和对象序列化实例分析
这篇文章主要介绍了python中IO流和对象序列化实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中IO流和对象序列化实例分析文章都会有所收获,下面我们一起来看看吧。
一.IO流的操作
(1).什么是IO流(Input Output Stream)?
IO流说的主要是计算机的输入和输出操作。常见的IO操作,一般说的是内存。
IO流是一种常见的持久化(永久保存)技术:将数据从内存输出到磁盘保存下来。
(2).IO流的分类
根据数据流动(站在内存的角度上来说):输入流、输出流
根据数据的类型:字符流、字节流
注:
字符流:字符只能操作有字符的数据(读到末尾是’’)
字节流:字节是可以操作一切数据的(读到末尾是b’’),字节流操作大数据,不建议一次性读取
(3).python怎么操作IO流?使用open()全局函数,用于打开本地文件,返回值是一个IO流对象
#open()函数的格式open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)mode模式有: 'r' open for reading (default) 'w' open for writing, truncating the file first 'x' create a new file and open it for writing 'a' open for writing, appending to the end of the file if it exists 'b' binary mode 't' text mode (default) '+' open a disk file for updating (reading and writing) 'U' universal newline mode (deprecated)encoding编码使用:默认为none,使用的时候要用,encoding="utf-8"
通常open()函数要与read()函数一起使用,read()函数用于读取IO流对象的值,除了read()函数还有以下这些:
1.read(size=-1) #读取,参数可以有也可以没有 readline() #按行读 readlines() #按多行读 #1.没有参数时,表示一次性读完 >>> f=open("G:\Python\python练习\day09\a.txt",encoding="utf-8") >>> f.read() #第一次读全部读完 '我爱我的祖国' >>> f.read() #第二次读为空 '' >>> f.close() #自动执行一次flush #2.有参数时,通常用于读字节数据。 表示按照参数读,这样若是读字节数据时,对内存有利,且读取速度快,不会让电脑出现死机情况 >>> f=open("G:\Python\python练习\day09\a.txt",encoding="utf-8") >>> f.read(2) #第一次读 '我爱' >>> f.read(2) #第二次读 '我的' >>> f.read(2) #第三次读 '祖国' >>> f.close() #自动执行一次flush2.write(data) #将内容写入到文件 >>> f=open("a.txt","rb") >>> data=f.read(4) >>> data b'\xba\x8c\xe7\x8b' >>> f1=open("b.txt","wb") >>> f1.write(data) #将f的字节数据写入f1 4 >>> f1.close() >>> f.close() >>> f1=open("b.txt","rb") #验证b.txt文件写的是否是data >>> f1.read() b'\xba\x8c\xe7\x8b' >>> f1.close()3.writelines()#将多个数据写入4.flush() #刷新缓存区5.close() #关闭file对象,注意close自动的调用flush进行最后的文件刷新
(4).with 语句块(与IO流搭配,可以自己去关IO流(close()))
格式: with open("user.dat","wb") as f: f.write(save_users)
二.对象序列化
(1).什么是对象序列化?
将对象(容器、对象等)这种抽象的概念转化成真正存储字符或字节数据的过程
(2).对象序列化怎么实现?两个模块:pickle模块、json模块
json模块:可以将对象转换为字符数据
pickle模块:可以将对象转换成字节数据
(3).两个模块详情:
一.pickle模块:将对象序列化成字节数据 >>> import pickle >>> dir(pickle) 'dump', 'dumps' ,'load', 'loads'1.dumps() #将对象序列化成字节数据,一个参数,用于放对象 >>> ls=[1,2,3,4] >>> import pickle >>> data=pickle.dumps(ls) #将ls序列化成字节数据存到data >>> data b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.' >>> f=open("b.txt","wb") >>> f.write(data) #将序列化的字节数据写入b.txt文件 16 >>> f.close() >>> f=open("b.txt","rb") #验证b.txt文件写的是否是data >>> f.read() b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.' >>> f.close()dump() #将对象序列化成字节数据,并且保存到file,两个参数,用于一个放对象,一个放存的文件 >>>pickle.dump(ls,open("a.txt","wb"))2.loads() #将一个字节数据对象反序列化成本身对象 >>> f=open("b.txt","rb") >>> data=f.read() >>> pickle.loads(data) ['a', 1, 2]load() #将一个文件的字节数据对象反序列化成本身对象 >>> pickle.load(open("b.txt","rb")) ['a', 1, 2]二.json模块:可以将对象序列化成字符数据 >>> import json >>> dir(json) 'dump', 'dumps', 'load', 'loads'1.dumps() #将对象序列化成字符数据,一个参数,用于放对象 >>> ls=[1,2,3,4] >>> data=json.dumps(ls) >>> f=open("b.txt","w") >>> f.write(data) 12 >>> f.close() >>> f=open("b.txt") >>> f.read() '[1, 2, 3, 4]' >>> f.close()dump() #将对象序列化成字符数据,并且保存到file,两个参数,用于一个放对象,一个放存的文件 >>> ls=['a','b',1,2] >>> json.dump(ls,open("b.txt","w")) >>> f=open("b.txt") >>> f.read() '["a", "b", 1, 2]' >>> f.close()2.loads() #将一个字符数据对象反序列化成本身对象 >>> f=open("b.txt") >>> data=f.read() >>> json.loads(data) ['a', 'b', 1, 2]load() #将一个文件的字符数据对象反序列化成本身对象 >>> json.load(open("b.txt")) ['a', 'b', 1, 2]
关于"python中IO流和对象序列化实例分析"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"python中IO流和对象序列化实例分析"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
对象
数据
序列
字节
字符
文件
参数
模块
函数
实例
实例分析
分析
两个
内存
内容
知识
utf-8
输出
一次性
常见
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
飞鸽服务器管理软件
省图书馆网络安全解决方案
局域网数据库代码
数据库名词解释ARQ
网络安全管理员四级教材
淘宝买的服务器系统激活码
搞软件开发的小说
湛江帕克互联网科技
网络安全监督检查自查表填写
网络安全学院新开学校
软件开发 需要的团队
t3用友软件数据库有问题怎么办
魔兽世界1比1服务器
软件开发面试题背诵目的
svn更换服务器地址
哪里购买 PN服务器地址
误删公司数据库违法认定
代理服务器在哪里关掉
mysql数据库如何自增字符
虚拟服务器域名修改
广东办公系统软件开发服务费
杭州湖畔网络技术有限公司简介
启明星辰网络安全服务之星
mc空岛服务器
济南亦信互联网科技有限公司
ips与dpi区别网络安全
手机卸载软件开发者会知道吗
云顶之弈美服测试服s7服务器
数据库主要划分为哪几种类型
云服务器的资料怎么刻录