文件操作模式
r w a , r+ w+ a+, rb wb ab,等
1、文件操作函数open
open(文件名(路径),mode=" ",encoding=" ")
r 模式
1 f = open("文件名.txt",mode="r",encoding="utf-8") 2 s=f.read() 3 f.close() 4 print(s)
当文件有多行内容时 可以借助循环读出
1 f=open("文件名",mode="r",encoding="utf-8") 2 for line in f: 3 print(line.strip()) #一行一行的处理数据 4 f.close()
1 while True: 2 s=f.readline().strip()# 一次读一行 3 if s!="" 4 print(s)
w 模式
如果写入的文件不存在,就会自动创建文件
1 f=open("文件名.txt",mode="w",encoding="utf-8") 2 f.write("写入的内容") #写入前程序会把文本中的内容全部清除,然后写入新的内容
3 f.flush() #刷新当前内容 4 f.close()
a模式
写的时候需要手动换行
1 f=open("文件名",mode="a",encoding="utf-8") 2 f.write("第一行") 3 f.write("第二行") 4 f.flush() 5 f.close()
rb、wb模式(rb,wb,ab 处理的是非文本文件,如视频、音乐、图片等)不需要加encoding
1 f=open("c:/tupian.jpg",mode="rb") 2 e=open("e:/tupian.jpg",mode="wb") 3 for line in f: 4 e.write() 5 e.flush() 6 f.close() 7 e.close()
r+(先读后写) w+(先写后读) 模式
f=open("文件名",mode="r+",encoding="utf-8") s=f.read(3) # 读取三个字符 print(s) f.write("写入的内容") # 写在文件的末尾
w+模式(一般不用,因为写操作会清空掉文本以前的内容)
1 f=open("文件名",mode="w+",encoding="utf-8") 2 f.write("插入的内容") 3 f.seek(0) # 写完后光标是在文本的末尾,读取不到任何内容 4 s=f.read() 5 print(s) 6 f.flush() 7 f.close()
a+ 模式(默认是在文本的末尾插入新的内容,光标在末尾)
1 f=open("文件名",mode="a+",encode="utf-8") 2 f.write("插入的内容")# 在文本的末尾添加 3 f.seek(0) 4 s=f.read() 5 print(s) 6 f.flush 7 f.close()
2、文件的相关操作
1 f=open("文件名",mode="r",encoding="utf-8") 2 f.seek(3) #表示三个字节,光标移动到第二个字符() 3 s=f.read(2) #从光标当前位置开始读二个字符 4 print(s) 5 print(f.tell()) #显示光标当前位置 6 f.close()
3、偏移量
1 seek(0) #表示文本的开头 2 seek(0,2) #在末尾的偏移量是0 末尾
4、截断truncate(参数)
1 f.truncate(12) #从头开始截断到光标位置,若给参数,则截断到参数位置