强调:t和b不能单独使用,必须跟r/w/a连用
t文本(默认的模式)
1、读写都以str(unicode)为单位的(文本文件中的字符存入到内存,都是unicode编码格式)
2、文本文件
3、必须指定encoding='utf-8'(从内存的unicode编码格式要存入到硬盘必须编码utf-8格式)
#b.txt文本文件存入硬盘的编码格式是utf-8
#没有指定encoding参数操作系统会使用自己默认的编码
#linux系统默认utf-8
#windows系统默认gbk
#open() 是由操作系统打开文件,如果打开的是文本文件,会涉及到字符编码问题,如果没有为open指定编码,那么打开文本文件的默认编码很明显是操作系统说了算
了,操作系统会用自己的默认编码去打开文件。
with open('b.txt',mode="rt",encoding="utf-8") as f:
res=f.read()#t模式会将f.read()读出的结果解码成unicode(str)。f.read()会将文件的内容由硬盘全部读入内存,赋值给res
print(res)
print(type(res)
#<class 'str'>
#内存:utf-8格式的二进制-----解码---->unicode
#硬盘(b.txt内容:utf-8格式的二进制)