如何模式匹配传入的数据流?

时间:2016-10-12 02:21:35

标签: python regex python-2.7 stream pattern-matching

我目前正在开展一个项目,该项目要求我从GPIB总线串行通信通道中获取数据并将输出文件转储到一个文件夹中。请找到以下代码,

import os.path
import serial
import sys
from time import sleep

comport = '/dev/ttyUSB0'
ser = serial.Serial()

try:
    ser = serial.Serial( comport, 9600, timeout=0.5 )

    # Switch to DEVICE mode
      cmd = '++mode 0'
      print('Sending:', cmd)
      cmd = cmd + '\n'
      ser.write(cmd.encode('UTF-8'))
      s = ser.read(256);
      if len(s) > 0:
      print(s)

    # Set instrument to LISTEN ONLY mode
      cmd = '++lon 1'
      print('Sending:', cmd)
      cmd = cmd + '\n'
      ser.write(cmd.encode('UTF-8'))

      while True:
         s = ser.read(256);
         if len(s) > 0:
         print(s)

  except(serial.SerialException, e):
  print(e)
  f.close()

  except(KeyboardInterrupt, e):
  ser.close()
  f.close()

我还没有对代码进行测试,但它应该可行。将GPIB适配器设置为++ lon模式使其只需通过GPIB总线监听所有通信。

执行代码时,我会看到一个数据流。我想将每一行流写入一个文件,直到找到以下匹配" U \ r \ n " ,这表示1个流的结束,此后的命令应该写入下一个文件,依此类推。

包含" U \ r \ n "也应该是最后一行写入输出文件。

0 个答案:

没有答案