由于您的输入使用Python的语法,出于某种原因(*),在这里要做的只是调用eval
:
>>> r"b'\x12\x12'"
"b'\\x12\\x12'"
>>> eval(r"b'\x12\x12'")
'\x12\x12'
但是请小心,因为这可能是安全问题。eval
将运行 任何 代码,因此您可能需要清理输入。就您而言,它很简单- 只需检查您要输入的eval
内容确实是所需格式的字符串即可。如果这里安全不是问题,那就不要打扰。
:仍然eval
是这里最简单的方法(b''
如果不存在,则添加它)。当然,您也可以通过将每个\xXX
值转换为其实际值来手动执行此操作。
(*)真的吗?对于数据表示格式,这似乎是一个奇怪的选择