Python基础—文件操作(Day8)
一、文件操作参数
1.文件路径
1)绝对路径:从根目录开始一级一级查找直到找到文件。
f=open('e:文件操作笔记.txt',encoding='utf-8',mode='r') content=f.read() print(content) f.close
2)相对路径:在同一文件夹下直接写文件名即可。
f=open('log',encoding='utf-8') content=f.read() print(content) f.close()
2.编码方式
3.执行动作
f=open('e:文件操作笔记.txt',encoding='utf-8',mode='r') content=f.read() print(content) f.close
f:时变量,f_obj,file,f_handler,...文件句柄
open:window的系统功能
'e:文件操作笔记.txt':文件路径
windows默认编码方式:gbk,linux默认编码方式utf-8
流程:打开一个文件,产生一个文件句柄,对文件句柄进行操作,关闭文件。
二、 文件的打开模式
1.读:
1)r只读:文件以什么编码方式存储的就以什么编码方式打开,编码不一致时会报错。
2)rb只读,以bytes类型读取(非文字类的文件用rb)
3)r+ 先读后追加,一定要先读后写
f = open('log',encoding='utf-8',mode='r+') content = f.read() print(content) f.write('aaa') f.close()
4)r+b以bytes类型操作的可读可写
2.写:
1)w只写
没有文件创建一个文件写入内容
with open('log1',encoding='utf-8',mode='w') as f: f.write('过会就可怜了') f.close()
有文件将原文件内容清空,再写入内容。
with open('log1',encoding='utf-8',mode='w') as f: f.write('666') f.close()
2)wb只写 bytes类型写
f=open('log',mode='wb') f.write('老男孩'.encode('utf-8')) f.close
3)w+ 写读,先写后读
with open('log',encoding='utf-8',mode='w+') as f: f.write('中国') print(f.tell())#按字节去读光标位置 f.seek(3) #按字节调整光标位置 print(f.read()) f.close()
4)w+b以bytes类型操作的可写可读
3.追加:
1)a只追加写模式
2)ab只追加写,以bytes类型操作
3)a+追加读
f = open('log',encoding='utf-8',mode='a+') f.write('BBB') content = f.read() print(content) f.close()
4)a+b以bytes类型操作的可写可读
三、文件的操作方法
1.f.read()全部读出来
f=open('log',encoding='utf-8') content=f.read() print(content,type(content)) f.close
2.f.readline()一行一行的读
3.f.readlines()将原文件的每一行作为一个列表的元素
4.read(n)读取一部分
在r模式下read(n)按照字符去读取
在rb模式下read(n)按照字节去读取
5.循环读取
f = open('log',encoding='utf-8') for i in f: print(i.strip()) f.close
6.f.writable()是否可写
f = open('log',encoding='utf-8') print(f.read()) print(f.writable()) #False f.close()
7.f.truncate()按字节对原文件截取
f = open('log',encoding='utf-8',mode='a') f.truncate(3) f.close()
8.f.readable()是否可读
9.f.seek()按字节调整光标位置
10.f.tell()按字节去读光标位置
四、文件的修改
1,将原文件读取到内存。
2,在内存中进行修改,形成新的内容。
3,将新的字符串写入新文件。
4,将原文件删除。
5,将新文件重命名成原文件。
五、with open('log'.encoding='utf-8') as f:
第一个功能:自动关闭文件句柄。
with open('log',encoding='utf-8') as f: print(f.read())
第二个功能:一次性操作多个文件句柄。
with open('log',encoding='utf-8') as f1, open('log1',encoding='utf-8') as f2: print(f1.read()) print(f2.read())