从串行输出中提取一些值的python脚本

2024-10-01 19:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经写了一个小脚本来捕获串行连接的输出。这是输出

                 CHEMONORM AG

      ZURCHERST.  137  CH-8852  ALTENDORF

   TEL: +00 00 4517200 FAX: +00 00 45172200

                   WATCHDOG



       pH            REDOX       IN1    IN2

   ---------       ---------    -----  -----

      7.1 pH          797 mV     Off     On

 RAM - TEST:         OK

 PROM - TEST:        OK

 PROCESS - STATUS:   OK

现在我想把pHREDOX (mV)的值存储到两个变量中

var1 = 7.1
var2 = 797

这是我的python脚本

#!/bin/env python
import time
import serial

ser = serial.Serial(
        port='/dev/ttyAMA0',
        baudrate = 2400,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS,
        timeout= None)


while True:
        line = ser.readline()
        print(line)

Tags: testimportlineserialokchphser
1条回答
网友
1楼 · 发布于 2024-10-01 19:33:38
if 'mV' in line:
    line_split = line.replace(' ','').replace('pH', ',').replace('mV', ',').split(',')
    var_ph = float(line_split[0])
    var_redox = float(line_split[1])

说明:

条件'mV' in line足以检测具有值的行

第一个替换-删除空白:'7.1pH797mVOffOn'

第二个和第三个将-单位替换为逗号:'7.1,797,OffOn'

按逗号分开列出:['7.1', '797', 'OffOn']

然后将第一个和第二个元素另存为float

相关问题 更多 >

    热门问题