问题描述
我正在尝试编写一个Python函数,该函数将UTF-8字符串的RLE编码转换为字节。给定"abbcccddddaaaaaa"
,它将返回b'\x01a\x02b\x03c\x04d\x06a'
。
我几乎解决了它,只是我坚持将运行长度(整数)转换为所需格式的十六进制 ,该格式类似于字符(\x
,而不是数字(0x
)。
我需要一个函数,该函数将接受一个十进制数字,并以'\x<hex form>'
的形式以十六进制形式返回它。例如,对于最大31的数字,这是chr()
的行为:
chr(1)
> '\x01'
chr(31)
> '\x1f'
但是在31以上,它将打印字符。
不起作用的东西:
hex(32)
> '0x20'
re.sub('0','\',hex(32),count=1)
> SyntaxError: EOL while scanning string literal
re.sub('0','\\',count=1)
> error: bad escape (end of pattern) at position 0
re.sub('0',r'\\',count=1)
> '\\x20'
所需结果:
my_func(32)
> '\x20'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)