我正在使用python3
。我想write()
所有8位無符號整數爲1個字節的子 - 讓我告訴你我是什麼意思:使用Python 3,如何將8位無符號整數與高位1一起寫入(1個字節)?
>>> p = subprocess.Popen(["./some_program"], stdin=subprocess.PIPE)
>>> x=0x80
>>> p.stdin.write(str.encode(chr(x)))
2
這是不行的,我想輸出1個字節,而不是2.我想這是因爲默認編碼是utf-8。好,我試試
>>> p.stdin.write(str.encode(chr(x), "ascii"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character '\x80' in position 0: ordinal not in range(128)
當然,也不行。
我怎麼p.stdin
後整理到只有1個字節發送給子進程,從'\x00'
所有無符號整數'\xff'
,正好爲1個字節與就像整數的8位表示的位?
嘗試寫'B'\ x80''。 –
@KlausD。是的,所以問題是,''\ x80''實際上不是一個字面字符串,而是另一種方法的輸出 - 我試圖寫一個SSCCE,可能太難了。 –
@KlausD。好的,我更新了這個問題,請現在看看。 –