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

如何将文件读取的bytearray(b'\x03\x05\n')转为3字符字符串或列表?

最简实现:把字符串形式的bytearray转成3字符字符串/列表

嘿,这个场景我碰到过!你现在手里的是字符串格式的bytearray字面量,不是真正的bytearray对象,所以得先把它解析成实际的bytearray,之后转换就超简单了。

第一步:安全解析字符串为bytearray

别用eval()(不安全,容易执行恶意代码),用ast.literal_eval()是最优解——它只会解析Python的字面量,完全安全:

import ast

# 你从a.txt读取到的字符串
input_str = "bytearray(b'\x03\x05\n')"
# 解析成真实的bytearray对象
ba = ast.literal_eval(input_str)

现在ba就是实打实的bytearray(b'\x03\x05\n'),里面包含3个字节元素:0x03、0x05、0x0A(也就是ASCII的换行符)。

第二步:转成3字符字符串

因为你的字节里有控制字符,用latin-1编码解码最稳妥(它能1:1映射所有0-255的字节到Unicode字符,不会丢数据):

char_str = ba.decode('latin-1')
# 结果是 '\x03\x05\n',长度为3的字符串

第三步:转成3元素列表

分两种情况:

  • 想要字节值的整数列表:直接转成list就行
    byte_value_list = list(ba)
    # 结果是 [3, 5, 10]
    
  • 想要字符形式的列表:遍历每个字节转成字符
    char_list = [chr(b) for b in ba]
    # 结果是 ['\x03', '\x05', '\n']
    

小提示

如果你确定输入字符串绝对安全(比如自己生成的文件),也可以用eval()代替ast.literal_eval(),但前者风险高,不推荐在生产环境用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:30:22