我想用python读取串行端口,并使用readline打印结果,但我在所有结果行之间得到空行。你能告诉我如何删除所有空行吗?
我代码:#!/usr/bin/python
import serial
import time
import sys
ser = serial.Serial("/dev/ttyACM0", 9600)
print ser.readline()
print ser.readline()
print ser.readline()
print ser.readline()
print ser.readline()
我从后面试了几个答案,但仍然是空行。我的txt文件看起来像:
T: 59.30% 22.20 8% 11% N
T: 59.80% 22.20 8% 11% N
T: 59.80% 22.20 8% 11% N
T: 59.80% 22.20 8% 11% N
但是我需要像
这样的文件T: 59.30% 22.20 8% 11% N
T: 59.80% 22.20 8% 11% N
T: 59.80% 22.20 8% 11% N
T: 59.80% 22.20 8% 11% N
编辑:找到解决这个问题的方法:
line = ser.readline().decode('utf-8')[:-2]
它现在工作良好。
import serial
with serial.Serial("/dev/ttyACM0", 9600) as ser:
for line in ser:
print line.rstrip('n')
或
import serial
with serial.Serial("/dev/ttyACM0", 9600) as ser:
for line in ser:
print line,
while True:
line = ser.readline()
if not line.strip():
continue
do_something_with(line)
根据这些提示,应该这样做:
import serial
ser = serial.Serial("/dev/ttyACM0", 9600)
while True:
line = ser.readline()
if line:
print(line)
import serial
ser = serial.Serial('COM11', 115200, timeout = 0.01)
print("Starting up")
while True:
try:
line = ser.readline().decode('ascii').strip()
if line:
print (line)
except:
pass
ser.flush()