定义
数据流的输入输出/内存中数据交换的操作
- IO密集型程序:在程序执行中有大量IO操作,而cpu运算较少。消耗cpu较少,耗时长。
- 计算密集型程序:程序运行中计算较多,IO操作相对较少。cpu消耗多,执行速度快,几乎没有阻塞
字符串字节串转换
模式
w+ 打开文件并读写 1. 文件存在,则清空(也即写入空); 2. 文件不存在,则创建文件 ; 3. 文件流定位到开始位置, 所以read() 会得到空。
r+ 打开文件并读写 1. 文件存在,打开文件,文件指针定位到文件开始位置; 2. 文件不存在, 则报错文件不存在。
a+ 打开文件并读添 1. 文件存在,打开文件,文件指针定位到文件开始位置,但不清空;2. 文件不存在,创建文件; 3. 打开后读取时,在文件开头位置,4. 写入时,添加到文章末尾,并且指针位于添加后的末尾,所以再次读取会乱码。
操作
1 读
>read([size])
返回所有内容,文件过大时候不建议直接读取到文件结尾,读到文件结尾会返回空字符串。
>readline([size])
返回读取到的内容,游标所以在一行
>readlines([sizeint])
返回读取到的内容列表
2 写
>write(string)
返回值:写入的字符个数,如果需要换行要自己在写入内容中添加\n
>writelines(str_list)
字符串列表作为参数
3 打开
file = open()
with open as file
4 关闭
file.close
缓冲
系统在内存中为每一个正在使用的文件开辟一个缓冲区
写入:内存--内存缓冲区--磁盘中去
读取:磁盘--内存缓冲区--程序数据区。
刷新缓冲区条件:
文件偏移量
读写共用一个偏移量
tell():获取文件偏移量
seek(offset[,whence]):移动偏移量
参数:offset 代表相对于某个位置移动的字节数。负数表示向前移动,正数表示向后移动。
whence是基准位置的默认值为 0,代表从文件开头算起,1代表从当前位置算起,2 代表从文件末尾算起。
- 必须以二进制方式打开文件时基准位置才能是1或者2
文件描述符
fileno()
文件操作函数
获取文件大小 os.path.getsize(file)
查看文件列表 os.listdir(dir)
查看文件是否存在os.path.exists(file)
判断文件类型os.path.isfile(file)
删除文件os.remove(file)
原文:https://www.cnblogs.com/yangjunh/p/python-files.html