我在Raspberry Pi上使用python。 我函数的参数之一是一个字符串,其中包含数量未知的数字。
我需要将它们全部提取出来并将它们放在不同的变量中。 然后,我将这些变量作为参数传递给:
t.write(serial.to_byte([OtherVar1, OtherVar2, OtherVar3, EXTRACTEDVar1, EXTRACTEDVar2, EXTRACTEDVAR3, etc])
我已经决定(但可以根据建议更改)该字符串将具有以下格式:NUMBER,NUMBER,NUMBER...
每个数字都将由,
分隔。
其他困难:每个数字代表一个16位的值,必须将其放入2个单独的字节中。 (因此8会给我VAR1=0x00
和VAR2=0x08
)
如何提取它们? 有没有一种方法可以在循环中生成不确定数量的变量?
对于那些熟悉MODBUS的人,我正在尝试创建MODBUS功能16,写入多个寄存器。而且我不知道该如何处理我必须发送的未知数据量。
谢谢您的帮助
答案 0 :(得分:0)
您可以这样做:
# number is your string of numbers
splitted = numbers.split(',')
result = [(num[:2],num[2:]) for num in splitted]
请注意,result
包含string
的元组,然后需要根据要使用的基数将它们转换为数字。