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

Python中如何将bytes类型参数转为字符串及八进制转义转十六进制

问题处理方案

通用bytes转字符串处理方法

  • Python3环境:bytes类型内置decode()方法,指定对应编码即可完成转换,默认编码为utf-8。示例用法:
    # 基础转换
    str_data = byte_data.decode('utf-8')
    # 编码兼容异常处理,可替换errors参数为replace/ignore等适配不同场景
    str_data = byte_data.decode('utf-8', errors='ignore')
    
  • Python2环境:原生str类型与bytes类型底层实现一致,如需将字节序列转换为逻辑字符串,可直接调用str()方法,也可通过decode()指定编码完成转换。

你当前场景的实现方案

你遇到的输出不符合预期的核心原因是:命令行传入的"\000\000\000"会被sys.argv识别为原生转义文本,不会自动解析为对应的ASCII空字节,需要手动完成转义解析和格式转换。
修改后的可实现目标效果的代码如下:

import sys
import ast

raw_input = sys.argv[1]
# 安全解析转义序列为字节数据,ast.literal_eval仅解析字面量无代码执行风险
parsed_byte = ast.literal_eval("b'%s'" % raw_input.replace("'", "\\'"))
# 转换为\x前缀的十六进制表示字符串
output = ''.join('\\x%02x' % ord(c) for c in parsed_byte)
print(output)

执行命令python2 test.py "\000\000\000"后,输出结果为\x00\x00\x00,符合你的预期。

内容的提问来源于stack exchange,提问作者joey.li

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:15:04