Python 将字符串转换为空终止字节字符串

Python convert string to null terminated byte string

我正在尝试将 python 字符串转换为空终止字节字符串。我的 python 程序中不需要此字符串,但我需要此格式的字符串并在其他地方使用此输出。

但基本上,例如,如果可能的话,我想以某种方式将字符串 "cat" 转换为 "\x63\x61\x74"

到目前为止我还没有找到适合这个问题的解决方案。


我有一个可能的解决方案,但我想知道是否有更好的方法来做到这一点。这只是将十六进制值放在列表中。与上面的格式不同,但结果相似。

text = "asjknlkjsndfskjn"
hexlist = []

for i in range(0, len(str)):
    hexlist.append(hex(ord(str[i:i+1])))

print(hexlist)

你试过吗?

>>> bytes('cat', 'ascii')
b'cat'

对于空终止只需添加 NUL:

>>> bytes('cat', 'ascii') + b'\x00'
b'cat\x00'

编辑: 要将十六进制表示形式存储在字符串中,您可以这样做:

>>> ''.join(['\'+hex(b)[1:] for b in bytes('cat', 'ascii')])
'\x63\x61\x74'
>>> print(_)
\x63\x61\x74