文件的三种打开方式
文件操作的基础模式有三种(默认的操作模式为r模式):
- r模式为read
- w模式为write
- a模式为append
文件读写内容的格式有两种(默认的读写内容的模式为b模式):
- t模式为text
- b模式为bytes
t,b这两种模式均不能单独使用,都需要与r/w/a之一连用.
文件打开模式之r模式
read,只读模式,只能读不能写,文件不存在时报错。
f = open('test.py','r',encoding='utf8') # 只读 # windows的操作系统默认编码为gbk,因此需要使用utf8编码 print(f.read()) # 读取文件所有内容, # ***** print(1,f.readline()) # 读取文件第一行 print(2,f.readline()) #读取文件第二行 for i in f: print(i) #可以使用这个方法循环文件 print(f.readable()) #是否可读 f.close()
文件打开模式之w模式
w: 只能写,不能读,文件存在的时候回清空文件后再写入内容;文件不存在的时候会创建文件后写入内容。
f=open('test.py','w',encoding='utf8') #只写 #清空后再写 print(f.readable()) f.write('abcde') f.flush() #立刻将文件内容从内存刷到硬盘 f.close()
文件打开模式之a模式
a: 可以追加。文件存在,则在文件的末端写入内容;文件不存在的时候会创建文件后写入内容。
f = open('test.py','a',encoding='utf8') # 追加 # 文件末追加 f.write('nick handsome') # ***** f.close()
文本模式t
# 文本模式t f = open('test.py','rt') data = f.read() print(data)
进制模式b
# 进制模式b f = open('python2和3的字符编码的区别.png', 'rb') f = open('python2和3的字符编码的区别.png', 'wb') f = open('python2和3的字符编码的区别.png', 'ab') data = f.read() print(data)
with管理文件上下文
with open('test.py','rt',encoding='utf8')as fr: # 自动关闭文件 print(f.read())
with open()方法不仅提供自动释放操作系统占用的方法,并且with open可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝。
with open('test.py', 'rt', encoding='utf8') as fr2, \ open('test.txt', 'rt', encoding='utf8') as fr1, \ open('test.png', 'rb') as fr3: data1 = fr1.read() print('data1', data1) data2 = fr2.read() print('data2', data2) data3 = fr3.read() print('data3', data3)