如何将字符串转换为 Python 中的字节(已关闭)

How to convert string to bytes in Python (Closed)

我在 python

中使用 crc-16libscrc

我想把字符串变成字节

例如:

a = '32'
b = '45'
c = '54'
d = '78'
e = '43'
f = '21'

----------------------------编码为------------ ------------------

预期结果:

b'\x32\x45\x54\x78\x43\x21'

如果您的输入值由 a,b,c,d,e,f 定义,那么您可以只给出:

print ("b'\x" + '\x'.join([a,b,c,d,e,f]) + "'")

这将导致:

b'\x32\x45\x54\x78\x43\x21'

当我尝试转换它时,结果是 b'2ETxC!' 我不确定你需要什么。

如果你需要b'2ETxC!',那么@Arty的回答就足够了。

print(bytes([int(x, 16) for x in [a, b, c, d, e, f]]))

但是,如果您想要 `b'\x32....\x21' 值,则必须使用上述连接语句。

下一段代码将您的输入字符串(a、b、c、d、e、f)转换为字节。尽管打印的字节看起来与您的预期输出在视觉上有所不同,但这些字节的值与您的预期相同,因为我的代码中的断言不会失败。

Try it online!

a = '32'; b = '45'; c = '54'; d = '78'; e = '43'; f = '21'
res = bytes([int(x, 16) for x in [a, b, c, d, e, f]])
assert res == b'\x32\x45\x54\x78\x43\x21'
print(res)

输出:

b'2ETxC!'

(按值等于预期 b'\x32\x45\x54\x78\x43\x21'