簡體   English   中英

在python中解析串行數據

[英]Parsing serial data in python

我是這個網站和python的新手。 我一直在從事一個項目,該項目需要從傳入的串行數據中提取變量並最終顯示它。 我目前正在解析數據,但遇到了一些麻煩。 串行數據如下所示:

a3b5f45c9g8a4c10f64;
f4h87d34k9h4j3d3;
h6f54a12a13a14a15b12b13;

在值之前,有多個變量由字母表示,並且它們的到達順序沒有特定的順序。 大約每秒鍾用分號中斷一行。 同一變量可能在每行中出現多次或根本不出現。 如果可以的話,我得到的最接近的是使用正則表達式在標識字母和下一個非數字之間找到值。 我遇到的問題是,它僅返回第一個匹配項,然后停止。 我需要不斷更新變量。 過去幾天我一直在撓頭,任何指導都將不勝感激。

import serial
import re

ser = serial.Serial('COM6', 9600, timeout=2)

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

  apples = re.search('a(.+?)\D', data_raw)
  if apples:
    applesvar = apples.group(1)
    print applesvar

  cherries = re.search('c(.+?)\D', data_raw)
  if cherries:
    cherriesvar = cherries.group(1)
    print cherriesvar


ser.close

你快到了 通過使用示例的第一行

line = 'a3b5f45c9g8a4c10f64'

re.findall('a(.+?)\D', line)
['3', '4']

re.findall('c(.+?)\D', line)
['9', '10']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM