Python第十六天笔记
IO流(input output stream)
一、什么是IO流:输入输出流
【主要说的就是将数据读入内存或者内存输出的过程中使用的技术
常见的IO流操作,一般说的是【内存】与【磁盘】之间的输入输出。】
内存(memory):储存数据
冯诺依曼,计算机五大组成部件:输入设备,输出设备,存储设备,控制器,运算器
IO流:内存数据的流入和流出
数据持久化:将内存的数据永久保存
方法1:IO流
方法2:数据库(还是一种IO流操作)
网路就是一种IO流
为什么使用IO流
进行数据的持久化或传输
二、IO流的作用:
持久化数据,保证数据不在丢失!
三、IO的分类
Python如何操作IO流:
全局函数open打开一个IO流操作
open函数主要的目的是打开一个本地的文件
open函数的使用中,需要了解以下几个参数:
mode中:
“r”——read表示输入流
"w"——write表示输出流
“t"——表示字符流 #使用字符操作IO流
"b"——表示字节流 #使用字节操作IO流 (字节流操作大数据的,不建议一次性读取)
"a"——表示追加输出
IO流的使用
>>>f = open(path,"r") #path是路径
>>>msg = f.read( )
>>>f.close( ) #最后关闭IO流,一定要关闭!
Open——是一个全局函数
Open(file[,mode = “r”])
四、IO读写文件的步骤:
(1)io读取文件
(2)io写入文件
例:
写入:
更多:
f = open(file,“r”) #f对象就是python IO对象
方法:read(size=-1) #读取
readline() #读取一行数据
readlines() #读取多行数据
>>>write(data) #写入到文件
>>>writelines() #将多个数据写入
>>>flush #刷新缓存区
>>>encodind() #编码
>>>colse() #关闭File对象,注意close自动的调用flush进行最后文件的刷新
>>>closed() #判断流是否关闭
.注意:
IO流如果不使用的话一定要关闭!不关闭的话会造成资源的占用。
拷贝数据时,为了避免因为目标过大而导致死机,应使用read参数来控制每次拷贝数据的多少,也可以用循环来做。
IO流的分类
根据流的类型
字符流:
字符串(文本类型)
字节流:
01二进制
需要大数据流的操作!!
根据流的方向
输入流
输出流
对象序列化
1.什么是对象序列化?
将内存的一个抽象概念/逻辑概念(对象)转换成字节或者字符数据的过程。
2.这里介绍两个用法——pickle、json1、pickle模块(二进制和对象之间的序列化)
1、dump——将对象序列化称为字节(二进制)数据,并且保存到file中
2、dumps——将数据序列化成为字节数据
3、load——将一个file对象反序列化
4、loads——将一个字节数据反序列化为对象
with语句块
python 每当打开一个IO,最后一定要关闭资源
with open("a.txt", "r") as f:
# 操作IO流,不用关闭
with语句块打开的IO
with结束时自动调用close方法关闭资源