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安全错误
数据库的锁怎样保障安全
高性能游戏服务器
飞鸽服务器管理软件
网络安全技术防护报告
冒险岛怎么去大陆服务器
闵行区个性化软件开发来电咨询
数据库实操步骤
青浦区互联网软件开发怎么样
向日葵有网络但连接服务器失败
大数据网络技术的发展
生产管理信息系统服务器
一键领取服务器
惠普服务器默认管理口地址
网吧服务器硬盘有什么文件
大华监控无法登录管理服务器
黄浦区软件开发技术服务价格
江西网络安全教育课
如何利用网络技术调查企业
服务器送王者荣耀皮肤
软件开发项目咨询费
工业控制网络技术作业
宝鸡软件开发价格走势
网络安全信息的例子
昆山服务器是哪儿产的
中国社会科学引文数据库检索
央行信贷数据库企业数量
数据库导入需要重建索引吗
sql数据库访问技术有哪些
服务器虚拟机配置声卡
软件开发高级技术
共享链商家软件开发