《Python Cookbook 3rd》筆記(5.17):將位元組寫入文字檔案
將位元組寫入文字檔案
問題
你想在文字模式開啟的檔案中寫入原始的位元組資料。
解法
將位元組資料直接寫入檔案的緩衝區即可,例如:
>>> import sys
>>> sys.stdout.write(b'Hello\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not bytes
>>> sys.stdout.buffer.write(b'Hello\n')
Hello
5
>>>
類似的,能夠通過讀取文字檔案的 buffer 屬性來讀取二進位制資料。
討論
I/O 系統以層級結構的形式構建而成。文字檔案是通過在一個擁有緩衝的二進位制模式檔案上增加一個 Unicode 編碼/解碼層來建立。 buffer 屬性指向對應的底層檔案。如果你直接訪問它的話就會繞過文字編碼/解碼層。
本小節例子展示的 sys.stdout 可能看起來有點特殊。預設情況下, sys.stdout 總是以文字模式開啟的。但是如果你在寫一個需要列印二進位制資料到標準輸出的指令碼的話,你可以使用上面演示的技術來繞過文字編碼層。
相關文章
- 《Python Cookbook 3rd》筆記(4.13):建立資料處理管道Python筆記
- python如何將資料寫入本地txt文字檔案Python
- Python的文字和位元組序列Python
- 位元組碼檔案解剖
- Python:讀寫檔案(I/O) | 組織檔案Python
- VBA建立文字檔案、讀寫文字檔案
- pyc位元組碼文字轉python程式碼Python
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- Python3 CookBook | 字串和文字Python字串
- 檔案輸入輸出處理(二)-位元組流
- python——將excel檔案寫入mysql資料庫中PythonExcelMySql資料庫
- python 寫入CSV檔案Python
- 【MATLAB】讀取和寫入文字檔案Matlab
- 檔案排版(文字檔案讀寫)
- 流暢的 Python – 3. 文字與位元組Python
- 【Python】將網格資料寫入到VTK檔案Python
- 《Eloquent JavaScript 3rd》筆記JavaScript筆記
- git將指定內容寫入檔案Git
- C#讀取文字檔案和寫文字檔案C#
- 讀取txt檔案將文字行組合成特定格式
- golang寫入檔案時,覆蓋前檔案(將前檔案清空)Golang
- Python學習之路23-文字和位元組序列Python
- 【Java】讀寫文字檔案Java
- 位元組碼檔案結構詳解
- Class檔案結構&位元組碼指令
- 【C#學習筆記】寫檔案C#筆記
- python file 檔案操作筆記Python筆記
- python操作檔案寫入內容Python
- python---json檔案寫入PythonJSON
- 129.(位元組流、字元流)對檔案進行讀寫操作字元
- 《Spring MVC CookBook》讀書筆記SpringMVC筆記
- Python學習筆記015——序列(位元組陣列 bytearray)Python筆記陣列
- 《Python Cookbook v3.0.0》Chapter2 字串、文字PythonAPT字串
- python 修改文字檔案Python
- C++學習筆記----讀寫檔案C++筆記
- vfp匯入文字檔案
- oracle 載入文字檔案Oracle
- Python筆記(五)——檔案處理Python筆記