簡體   English   中英

Python3打印原始字節

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM