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
我正在尝试将 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