[英]Python3 print raw byte
我想要一個簡單的單行解決方案,它將打印一個字節。
python3 -c 'print("A", end="")' | xxd -p
python3 -c 'print("\x41", end="")' | xxd -p
正如預期的那樣,兩條線的輸出均為41
python3 -c 'print("\xec", end="")' | xxd -p
輸出: c3ac
我認為這與python3使用utf-8作為默認編碼這一事實有關,但是我找不到一個簡單的解決方案。
基本上,我希望python3相當於:
perl -e 'print "\xec"'
打印的字符串將寫入sys.stdout
對象並編碼為系統編碼 。 實際寫入的字節數取決於您的系統區域設置; 您的終端配置為UTF-8,因此U + 00EC字符編碼為兩個字節。
您需要將原始字節寫入sys.stdout.buffer
:
python3 -c 'import sys; sys.stdout.buffer.write(b"\xec")'
注意b
前綴。
演示:
$ python3 -c 'import sys; sys.stdout.buffer.write(b"\xec")' | xxd -p
ec
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.