【问题标题】:How to convert string to bytes in Python (Closed)如何在 Python 中将字符串转换为字节(已关闭)
【发布时间】:2021-02-02 03:00:24
【问题描述】:

我在 python 中使用crc-16libscrc

我想把字符串改成字节

例如:

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

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

预期结果:

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

【问题讨论】:

  • print(bytes([int(x, 16) for x in [a, b, c, d, e, f]])) - 这给出了您预期的字节。虽然看起来不同,但它的值与 b'\x32\x45\x54\x78\x43\x21' 的字节数相同。
  • 你应该在你的问题中说明你想做什么。
  • 不确定这是否是您要查找的内容print ("b'\\x" + '\\x'.join([a,b,c,d,e,f]) + "'")

标签: python crc16


【解决方案1】:

接下来的代码将您的输入字符串(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'

【讨论】:

    【解决方案2】:

    如果您的输入值与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' 值,那么你必须使用上面的 join 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2014-07-07
      • 2018-05-02
      相关资源
      最近更新 更多