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

Python如何将命令行传入的十六进制转义字符串读取为原始字节

十六进制转义命令行参数转原始字节实现方案

前置注意事项

  • 命令行输入参数时请用单引号包裹十六进制转义字符串,避免shell提前解析\x转义序列,导致程序接收到的参数已经被转义为普通字符。正确输入示例为:--byte_arg '\x41\x41'

Python 实现方法

方法1:适配\x格式输入

如果要兼容用户带\x前缀的输入格式,可通过unicode_escape编码规则处理转义序列:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--byte_arg', type=str)
args = parser.parse_args()

# 核心转换逻辑
raw_bytes = args.byte_arg.encode('latin1').decode('unicode_escape').encode('latin1')

转换后得到的raw_bytes即为对应原始字节,你传入'\x41\x41'时得到的结果为b'AA',每个字节的十六进制值均为0x41,符合需求。

方法2:纯十六进制输入(更推荐)

如果可以调整用户输入规则,建议让用户直接输入不带\x前缀的纯十六进制字符串,比如--byte_arg 4141,直接调用内置方法转换即可,无转义歧义:

raw_bytes = bytes.fromhex(args.byte_arg)

结果验证

你可以通过遍历字节的方式确认转换结果是否正确:

for single_byte in raw_bytes:
    print(hex(single_byte))
# 输出:
# 0x41
# 0x41

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:15:02