如何从字符串中提取数字并将其放入多个变量中?

时间:2019-05-16 20:44:20

标签: python parsing

我在Raspberry Pi上使用python。 我函数的参数之一是一个字符串,其中包含数量未知的数字。

我需要将它们全部提取出来并将它们放在不同的变量中。 然后,我将这些变量作为参数传递给:

t.write(serial.to_byte([OtherVar1, OtherVar2, OtherVar3, EXTRACTEDVar1, EXTRACTEDVar2, EXTRACTEDVAR3, etc])

我已经决定(但可以根据建议更改)该字符串将具有以下格式:NUMBER,NUMBER,NUMBER...每个数字都将由,分隔。

其他困难:每个数字代表一个16位的值,必须将其放入2个单独的字节中。 (因此8会给我VAR1=0x00VAR2=0x08

如何提取它们? 有没有一种方法可以在循环中生成不确定数量的变量?

对于那些熟悉MODBUS的人,我正在尝试创建MODBUS功能16,写入多个寄存器。而且我不知道该如何处理我必须发送的未知数据量。

谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以这样做:

# number is your string of numbers
splitted = numbers.split(',')
result = [(num[:2],num[2:]) for num in splitted]

请注意,result包含string的元组,然后需要根据要使用的基数将它们转换为数字。