關於文件中"wb"與"rb"的理解


“rb”,”wb”這兩種方式在操作文件時,直接跳過了系統的編碼方式,在windows系統中,用的編碼為gbk:

with open(“a.txt”,”w”) as f1:

         F1.write(“aa”)

     默認用gbk進行編碼並且寫入。

②: with open(“a.txt”,”r”) as f1:

       Print(F1.read())

默認用gbk編碼進行解碼

③: with open(“a.txt”,”wb”) as f1:

        F1.write(“aa”.encode(“utf-8”))

跳過了系統的gbk而用的是utf-8進行編碼,這跟”w”不一樣,好像”w”只不過省略了一個步驟即:”aa”.encode(“gbk”),”wb”只不過對作者要求的更多即:完成了計算機自動完成的步驟。

with open(“a.txt”,”rb”) as f1:

     Print(f1.read().decode(“utf-8”))

    

程序員自己手動指定了二進制的解碼方式為utf-8而不是gbk

⑤: with open(“a.txt”,”r”,encoding = “utf-8”) as f1:

Print(f1.read())

此時指定了”r”的編碼方式為utf-8,跟”rb” 有一樣的效果

 

總結:1”wb”,”rb”能夠跳過系統自帶的編碼方式

      2、是不是,如果是”rb”,那么在print(f1.read())之前已經將二進制轉換為了字符串,所以才會有with open(a.txt,r,encoding = utf-8) as f1 中的encoding.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM