強調: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格式的二進制)