python二进制打开(rb)和文本格式打开(r)什么区别?
生活随笔
收集整理的這篇文章主要介紹了
python二进制打开(rb)和文本格式打开(r)什么区别?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用 open() 函數以文本格式打開文件和以二進制格式打開文件,唯一的區別是對文件中換行符的處理不同。
在 Windows 系統中,文件中用 “\r\n” 作為行末標識符(即換行符),當以文本格式讀取文件時,會將 “\r\n” 轉換成 “\n”;反之,以文本格式將數據寫入文件時,會將 “\n” 轉換成 “\r\n”。這種隱式轉換換行符的行為,對用文本格式打開文本文件是沒有問題的,但如果用文本格式打開二進制文件,就有可能改變文本中的數據(將 \r\n 隱式轉換為 \n)。
而在 Unix/Linux 系統中,默認的文件換行符就是 \n,因此在 Unix/Linux 系統中文本格式和二進制格式并無本質的區別。
總的來說,為了保險起見,對于 Windows平臺最好用 b 打開二進制文件,保證元數據沒有被處理,對于 Unix/Linux 平臺,打開二進制文件,可以用 b,也可以不用。
建議打開文件的時候用下面with更好一點
例1
with open("test.txt","rb") as f:content=f.read()print(content)
例2
f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
例2存在2個問題:
1.文件讀取發生異常,但沒有進行任何處理;
2.可能忘記關閉文件句柄
注:
1.如果使用了with,則會自動關閉,而不管讀取過程中有無發生問題都會關掉
2.而使用with語句的話,能夠減少冗長,還能自動處理上下文環境產生的異常
總結
以上是生活随笔為你收集整理的python二进制打开(rb)和文本格式打开(r)什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速排序的递归和非递归实现 c语言版本
- 下一篇: 55道常见的计算机面试题