控制文本读写格式
- t(默认的):文本模式
- 读写都是以字符串的为单位的
- 只能针对文本文件
- 必须加入encoding参数
- b:二进制模式
- 读写文件都是以bytes/二进制为单位
- 可以针对所有的文件
- 不可以加入encoding参数
- 前提:
- b / t模式都不能单独使用,必须与r / w / a之一结合使用。
(1)t模式
- t 模式:默认方式,我们指定的文件的打开模式就是r / w / a,默认的就是rt / wt / at。
# t模式
# r w a 默认的就是rt wt at
# with open('01.txt','rt',encoding='utf-8') as f:
# res=f.read()
# print(res)#syh
# print(type(res))#<class 'str'>
# with open('01.txt','wt',encoding='utf-8') as f:
# res='hello world'
# f.write(res)#写入的也必须为字符串类型
- 强调:t 模式只能用于操作文本文件,无论读写,都应该以字符串为单位,而存取硬盘本质都是二进制的形式,当指定 t 模式时,内部帮我们做了编码与解码。
(2)b模式
- b 模式读写都是二进制单位。
# b模式
#
# with open('01.txt','rb') as f:
# res=f.read()
# print(res)#b'hello world'
# print(type(res))#读出时为bytes类型
# with open('01.txt','wb') as f:
# res='苏毅航'
# res1=res.encode('utf-8')#将字符串转为bytes数据类型
# f.write(res1)#在b 模式下写入文件时,必须是bytes类型
- 强调:b模式对比t模式
- 在操作纯文本文件方面t模式帮我们省去了编码与解码的环节,b模式则需要手动编码与解码,所以此时t模式更为方便。
- 针对非文本文件(如图片、视频、音频等)只能使用b模式。
(3)练习
编写拷贝工具
#源文件路径为:D:\old boy\python\python28基础\day10\girl.jpg
#新文件路径为:D:\old boy\python\python28基础\day10\img\girl.jpg
#编写拷贝工具
#1.先写入源文件路径
old=input("源文件路径为:")
#2.再写入拷贝的新文件路径
new=input('新文件路径为:')
#3.先读取源文件的内容,再将源文件的内容写入新的文件中
with open(old,'rb')as read_f,open(new,'wb') as write_f:
write_f.write(read_f.read())
标签:read,res,读写,模式,源文件,文本,open
From: https://www.cnblogs.com/suyihang/p/17877995.html