W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
你想在文本模式打開的文件中寫入原始的字節(jié)數(shù)據(jù)。
將字節(jié)數(shù)據(jù)直接寫入文件的緩沖區(qū)即可,例如:
>>> 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
屬性來讀取二進制數(shù)據(jù)。
I/O系統(tǒng)以層級結(jié)構(gòu)的形式構(gòu)建而成。文本文件是通過在一個擁有緩沖的二進制模式文件上增加一個Unicode編碼/解碼層來創(chuàng)建。buffer
屬性指向?qū)?yīng)的底層文件。如果你直接訪問它的話就會繞過文本編碼/解碼層。
本小節(jié)例子展示的 sys.stdout
可能看起來有點特殊。默認(rèn)情況下,sys.stdout
總是以文本模式打開的。但是如果你在寫一個需要打印二進制數(shù)據(jù)到標(biāo)準(zhǔn)輸出的腳本的話,你可以使用上面演示的技術(shù)來繞過文本編碼層。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: