Day09文件操作
1.什么是文件
文件:操作系统为应用程序或者用户提供的一种操作硬盘的虚拟单位
强调:①文件是操作系统提供的虚拟单位②应用程序或者用户对文件的读写操作其实都是向操作系统发送指令
2.为什么要用文件
文件对应的是硬盘,如果要永久保存数据,就必须使用文件
3.如何用文件
①打开文件②读or写③关闭文件
open(文件路径,模式,编码方式) 路径分隔符:windows系统\ linux系统/ rawstring 路径前加r,原始字符串
4.为什么要关闭文件
open向操作系统发起请求,操作系统操作硬盘,映射出一片硬盘空间,open有返回值,open在应用程序内占用一片内存空间,在操作系统中也占有一片空间
应用程序,python解释器有垃圾回收机制,会回收应用程序的内存而操作系统占用的内存需使用命令关闭
5.如何关闭文件
f.close()向操作系统发指令,让操作系统关闭打开的文件,回收操作系统资源,但f对应的应用程序未结束,故此时可以打印f,但无法对f进行读写操作,因为f对应的文件在操作系统中关闭了
ps:f.read()向操作系统发起请求,windows操作系统默认为gbk编码,以utf-8存的数据,open时未指定编码规则会报错
6.文件打开的上下文管理器
with open其中with会帮我们自动关闭文件
7.文件读写的操作模式:r,w,a;控制文件读写操作内容的模式:t(文本模式)b(bytes)二进制
t模式会将硬盘的二进制数据转换成unicode二进制
t,b模式不能单独使用,必须与r,w,a连用
r只读模式,文件不存在会报错;文件存在,指针跑到文件开头
w只写模式,文件不存在新建文件;文件存在会清空文件,指针跑到文件开头
a只追加写模式,文件不存在会新建文件;文件存在指针跑到文件末尾
t模式无论读写都是以字符串为单位,只能操作文本文件,一定要指定encoding参数
b模式无论读写都是以二进制位单位,可以操作所有类型的文件,一定不能指定encoding参数
readlines()全读出来,存成列表,有换行的,会识别出换行符
readline()逐行读,字符串
read()以字符串形式全读出来
\n,换行 \r回到行首 windows换行符\r\n open函数统一将换行符转换成\n
writelines(iterable)原理for参数,将参数逐行写入
8.修改文件的两种方式
1.全部读入内存
①以读的方式打开源文件②将文件内的内容一次性读入内存,在内存中完成修改③以写的方式打开源文件,将修改后的内容写回文件
2.逐行读入内存
①以读的方式打开源文件,以写的方式打开临时文件②将源文件逐行读入内存,修改后写入临时文件③删除源文件,将临时文件重命名为源文件