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