文件处理是什么,什么是文件?
文件是操作系统暴露给用户可以操作复杂硬盘的简单方法和接口
文件的读写模式:
r 只读模式
w 是写模式
a 追加模式
r 只读模式 :
1.文件不存在的情况下 直接报错
2.文件存在的情况下 光标在文件的开头
w只写模式:(#######)
1。文件不存在的情况下,自动创建一个新的文件
2.文件存在的情况下,先清空文件的内容再写入
文件的操作单位:
t:文本模式
只能和r w a连用,并不写的情况下按默认就是t
b:二进制模式:
只能和r/w/a连用
该模式通常用来处理非文本文件
直接存储网络上传输过来的二进制数据
流程:
python代码操作文件:
f = open(r'文件路径',mode='读写模式',encoding='文件的编码')
f.close()
示例中的f可以认为就是一个遥控器,也就是文件的句柄
文件的上下管理:
with open(r'文件的路径’,mome='读写模式', encoding = ‘文件的编码’) as f:
文件操作代码
实例解析:
1.代码中的r时代表原生的意思,也就是后面的转移符失去功能,代表字符原有的意思
2.文件的路径分为两种:
1.相对路径:必须要有一个参照物;通常对于执行文件同一根目录(同一阶层)
2.绝对路径:不需要任何参照物,直接根据文件的路径定位,相当于GPS定位。
3. mome :momen模式有R \W \A三个模式,不写的情况默认为 ‘r+t’ ps:t代表文本模式
4.encoding 参数只是在momen在文本模式下才使用,因为b模式不能使用
补充知识:
文件其他模式的补充:
r+ 读写(可读可写)
w+ 写读(可读可写)
a+ 写读(可读可写)
文件操作的功能
f.read() 一次性将文件内容全部读到内存 当文件过大时可能导致计算甲内存溢出
f.readline() 一行行的读取内容,始终在内存只有一行的内容
f.readlines() 将一行行的内容存放到列表中,成为一个个元素
f.readable():是否可读
f.writeable() 是否可写
f.write() 写文件
f.writelines() 要接收一个容器类型
for i in l:
f.write(i)
f.writeline() 写一行
文件内光标的移动:
关键字为seek:
seek有两个参数:seek移动都是字节数
offset:相对偏移量 光标的移动位数
whence:
0:代表参照文件的开头 文本模式和二进制模式都可以使用
1:参照光标的所在位置, 只能在二进制模式使用
2,: 参照文件的末尾 只能在二进制模式下是使用
tell() 内置功能可以查看光标的移动了多少位 bytes
truncate()截取、截断的意思 接受的字节的长度
如:
f.truncate(8)
则保留0~8字节数,其他的后面全部删除(截断)
修改文件两种方式:
一、现将数据由硬盘读取到内存(读文件)
在内存中完成内容修改(字符串的替换)关键字:replace()
再覆盖原来的文件内容(写文件)
优势:
任意时间硬盘上面只有一个文件,不会占用过多的硬件空间
缺点:
当文件过大时可能会造成内存的溢出(因为使用了 read())
二、创建一个新的文件
for循环读取老文件内容到内存进行修改,将修改号的内容写到新的文件里面
将老文件删除,将新文件的文件名改为老文件的名字(需要用到import os 函数 os的remove及renname)os.remove('老文件名') # 删除老文件名字
os.rename(‘原文件名字’,‘需要改变成的名字’)
优势:
内存中始终只有一条内容 不占内存
缺点:
在某一时间硬盘上会同时出现两个文件
下