python3 进制型字符串转换问题

有一个字符串:

s = '\\111\\116\\x5f\\111\\x41'

如何转成

s = '\111\116\x5f\111\x41'
阅读 2k
1 个回答
def str_to_bytes(s):
    import re
    tmp = re.split(r'\\([0-9]{3})|\\x([0-9a-fA-F]{2})', s)
    tmp.pop(0)
    buff = []
    while len(tmp) > 1:
        a = tmp.pop(0)
        b = tmp.pop(0)
        if a is None:
            buff.append(int(b, 16))
        else:
            buff.append(int(a, 8))
        tmp.pop(0)
    return bytes(buff)
    
s = '\\111\\116\\x5f\\111\\x41'
print(str_to_bytes(s))

输出:
IN_IA

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题