亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

打開文件時“rb”和“wb”是什么意思?

打開文件時“rb”和“wb”是什么意思?

Helenr 2021-11-16 17:06:11
Python 3 中的二進制與默認模式的含義是什么?當我嘗試打開以另一種模式保存的泡菜文件時,出現錯誤,而在 Python 2.7 中,我可以在模式之間切換而沒有任何問題。這個問題很容易解決,但為什么它首先重要?一般來說:為了更大的便攜性,應該首選哪種模式?是否存在首選模式的特定場景(例如處理純文本文件等)?二進制/默認模式對 UTF-8 等編碼有什么影響?
查看完整描述

1 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

文檔

正如概述中提到的,Python 區分二進制和文本 I/O。以二進制模式打開的文件(包括'b'mode參數中)將內容作為bytes對象返回,無需任何解碼。在文本模式下(默認,或當't'包含在mode參數中時),文件的內容作為 返回str,字節已首先使用平臺相關的編碼或使用指定的編碼(如果給定)進行解碼。

不出所料,您應該對文本數據使用(默認)文本模式,對二進制數據使用二進制模式——包括pickle明確定義為二進制的數據:

pickle模塊實現了用于序列化和反序列化 Python 對象結構的二進制協議。“pickling”是將 Python 對象層次結構轉換為字節流的過程,“unpickling”是相反的操作,即字節流(來自二進制文件https://docs.python.org/3/glossary .html#term-bytes-like-object ) 被轉換回對象層次結構。

Python 3 處理文本和二進制數據之間的區別與 Python 2完全不同——實際上,這是主版本號更改的主要原因。因此,有時沒有充分考慮區別的代碼在 Python 2 中似乎“正常工作”(但隨后經常會以意想不到的方式進一步咬你)。


查看完整回答
反對 回復 2021-11-16
  • 1 回答
  • 0 關注
  • 454 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號