Python第十六天笔记

IO流(input output stream)

一、什么是IO流:输入输出流

【主要说的就是将数据读入内存或者内存输出的过程中使用的技术

常见的IO流操作,一般说的是【内存】与【磁盘】之间的输入输出。】

内存(memory):储存数据

冯诺依曼,计算机五大组成部件:输入设备,输出设备,存储设备,控制器,运算器

IO流:内存数据的流入和流出

数据持久化:将内存的数据永久保存

方法1:IO流

方法2:数据库(还是一种IO流操作)

网路就是一种IO流

为什么使用IO流

进行数据的持久化或传输

二、IO流的作用:

持久化数据,保证数据不在丢失!

三、IO的分类

python 取流 python io流_python 取流

Python如何操作IO流:

全局函数open打开一个IO流操作

open函数主要的目的是打开一个本地的文件

open函数的使用中,需要了解以下几个参数:

python 取流 python io流_python 取流_02


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读取文件

python 取流 python io流_数据_03


(2)io写入文件

python 取流 python io流_对象序列化_04


例:

写入:

python 取流 python io流_对象序列化_05


更多:

f = open(file,“r”) #f对象就是python IO对象
方法:

read(size=-1) #读取
readline() #读取一行数据
readlines() #读取多行数据

>>>write(data)		 #写入到文件
>>>writelines()      #将多个数据写入	

>>>flush 			 #刷新缓存区
>>>encodind()  		 #编码

>>>colse()	#关闭File对象,注意close自动的调用flush进行最后文件的刷新
>>>closed() #判断流是否关闭

.注意:
IO流如果不使用的话一定要关闭!不关闭的话会造成资源的占用。
拷贝数据时,为了避免因为目标过大而导致死机,应使用read参数来控制每次拷贝数据的多少,也可以用循环来做。

python 取流 python io流_对象序列化_06

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方法关闭资源