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