Python readline empty lines



我想用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()

最新更新