- IO流:
什么叫做IO stream(input output stream):输入输出流
指的就是内存数据的读入和写出!!!!
广义上来说,IO流指的就是数据到磁盘、到另一电脑间(socket)的都可以被称为IO流
狭义上来说,IO流一般指的就是内存和磁盘之间的数据交互
python的IO流操作和C语言的非常的像,所以操作非常简单
-
IO的分类:
数据流动的方向:
|-- 输入流 read 读取 inputstream
|-- 输出流 write 写入 outputstream
数据类型:
|-- 字节流 byte
|-- 字符流 text -
open函数:
各个位的参数问题
-
file对象的常见方法:
read()
readline()
readlines()
write()
writelines()
flush() # 手动刷新缓冲区 -
字节流的使用:
二进制数据:图片、视频、音频等等二进制文件数据
-
对象序列化和反序列化:
对象:逻辑、虚拟、抽象单位
对象序列化:就是将逻辑的东东转换为真实可以保存的数据(字节数据、字符串(json、xml、yaml……))
对象反序列化:就是将序列化后的数据,还原为逻辑数据持久化:永久的保存数据,将数据保存到磁盘等设备(ROM)上
-
pickle
主要就是将对象序列化为字节数据
dumps(对象) # 将对象转换为二进制数据
loads(二进制数据) # 将二进制数据转换为对象dump(file, 对象) # 将对象转换为二进制数据,再持久化到磁盘
load(file) # 将磁盘上保存的二进制数据,转换为对象 -
json
主要是将对象序列化为字符数据
大文件拷贝
def copy_file(src_url,dest_url):
fr = open(src_url,'br')
fw = open(dest_url,'bw')
while True:
content = fr.read(1024 * 1024 * 10)
if content == b'':
break
else:
fw.write(content)
fr.close()
fw.close()
if __name__ == '__main__':
src_url = input("请输入原文件:")
dest_url = input("请输入需要拷贝的文件:")
copy_file(src_url,dest_url)