gpt4 book ai didi

python - 字节命令功能不适用于 PySerial

转载 作者:行者123 更新时间:2023-12-02 01:34:01 26 4
gpt4 key购买 nike

我有一个函数,它接受一组值并将其转换为字节字符串。例如,我需要:

input_array = ['E9', '01','06','57','4A','01','F4','01','01','EF']
## needs to become b'\xE9\x01\x06\x57\x4A\x01\xF4\x01\x01\xEF'

我的功能是:

def string_to_command(inp): 
new_string = ''
for i in inp:
new_string += r'\x' + i
return new_string.encode('latin-1')

当我打印这两个命令时:

print(string_to_command(input_array))
print(b'\xE9\x01\x06\x57\x4A\x01\xF4\x01\x01\xEF')
# OUTPUT b'\\xE9\\x01\\x06\\x57\\x4A\\x01\\xF4\\x01\\x01\\xEF'
# OUTPUT b'\xe9\x01\x06WJ\x01\xf4\x01\x01\xef'

我不确定这里发生了什么。最后一个带有 b""的命令实际上正确地命令了我的输出设备,而另一个则不然。如何解决这个问题?

最佳答案

您可以先转换为 int,然后再转换为 bytes。

>>> a = ['E9', '01','06','57','4A','01','F4','01','01','EF']
>>> bytes(int(x, base=16) for x in a)
b'\xe9\x01\x06WJ\x01\xf4\x01\x01\xef'

关于python - 字节命令功能不适用于 PySerial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72829970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com