Python PySerial readline函数错误使用

2 投票
1 回答
2109 浏览
提问于 2025-04-15 11:45

我正在使用一个脚本,导入了PySerial库来从COM4读取数据。

我想要拦截的消息都是以几个#符号结尾的。

所以我尝试使用了:

bus.readline(eol='##')

这里的bus是我的连接。

我本来希望能读取到这样的内容:

  1. *#*3##
  2. *#*3##
  3. *#*3##

但不幸的是,我还发现了:

  1. *#*1##*1*1*99##

我本来希望能把它分成两行来读取:

  1. *#*1##
  2. *1*1*99##

显然,readline这个功能没有正常工作,但这是为什么呢?

1 个回答

3

在pyserial中,readline()这个方法是一次读取一个字符,并且会把这个字符和结束行符(EOL)进行比较。你不能一次指定多个字符作为结束行符。如果你需要处理多个字符,你得先把所有字符读进来,然后再用string.split()或者re.split()来分开。

撰写回答