You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python优雅实现字节数组的可读格式化输出(ASCII/十六进制)

优雅格式化字节数组的可读输出(Python实现)

给定字节数组:

b = bytes([0x00, 0x78, 0x6f, 0x58, 0x00, 0x4f, 0x30, 0x00])

我们需要将其格式化为:可打印ASCII字符直接显示对应字符,不可打印字节显示两位十六进制值,最终输出如下:

00  x  o  X 00  O  0 00

简洁Pythonic实现

用列表推导式快速生成格式化后的元素列表,再通过join拼接成最终字符串,代码如下:

b = bytes([0x00, 0x78, 0x6f, 0x58, 0x00, 0x4f, 0x30, 0x00])

# 生成格式化后的元素列表
formatted_items = [chr(byte) if 32 <= byte <= 126 else f"{byte:02X}" for byte in b]
# 用两个空格拼接成结果字符串
print('  '.join(formatted_items))

代码说明

  • 遍历字节数组时,直接判断字节是否在可打印ASCII范围(32-126):这个区间包含空格到波浪号的所有可打印字符,排除了0-31的控制字符和127的DEL字符。
  • 对可打印字节用chr()转成对应字符,不可打印字节用f-string格式化为两位大写十六进制(02X确保不足两位时补零)。
  • 最后用' '.join()将所有元素拼接成符合要求的字符串,这种写法简洁高效,完全符合Pythonic风格。

内容的提问来源于stack exchange,提问作者fearless_fool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:52:09