IO文件:
冯诺依曼体系:输入、输出设备 、存储器、cpu:运算、控制器
***IO操作慢
文件打开之后一定要关闭
文件存储在磁盘上的时候 不一定是物理连续上的存储(磁盘叫随机访问设备)
文本模式和二进制模式。不同模式,操作函数不尽相同,操作结果也不一定相同
file : 打开或者创建的文件名、如果不指定路径,默认当前路径
* mode模式
文件一般默认只读文本方式打开
r:打开的必须是个已存在文件
w:用w打开文件的话,则清空文件,如果没有此文件,则创建一个只写的文件,不能用read操作
a:文件存在,只写打开追加内容 ,文件不存在,创建一个全新的文件并写入
X:文件必须不存在,然后创建一个新文件
用什么编码写入,便读出什么编码
字节可随意操作,但是切换到文本方式容易产生乱码
+:缺啥补啥(即如果是读补上写,如果是写补上读)
文件指针Seek(字节的索引):在跳转的时候只认字节
0:相对于初始 1:相对于当前 2:相对于最后(EOF)
tell:返回指针所在的位置
buffering:缓冲区,缓冲区是构建一个先进先出的队列,里面只有暂存的数据
缓冲区不设置的话默认是8192
Windows情况下默认GBK ,Linux默认UTF-8
with 语法一定能关闭文件
StringIO和BytesIO
StringIO 、BytesIO只存储在内存中,没有写入磁盘的能力
getvalue:直接从内存获得StringIO的所有内容
路径操作
path操作和返回的全是字符串类型
如何遍历一个目录
shutil
copy
序列化和反序列化
序列化带类型
Pickle库
类
实例自己的属性需要单独序列化
序列化应用
Json 文本
树的遍历与堆排序
树的遍历有深度优先和广度优先
广度优先:根部开始,层层遍历
中序遍历
堆排序Heap Sort
形成树
制成大顶堆
选择排序
csv文件