以'\ x020'形式表示整数> 31的十六进制形式

问题描述

我正在尝试编写一个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 (将#修改为@)