文件的三种打开方式
文件操作的基础模式有三种(默认的操作模式为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)