简体   繁体   English

Python readline 空行

[英]Python readline empty lines

I would like to read serial port with python, and print result with readline, but I'm getting empty lines between all result lines.我想用 python 读取串口,并用 readline 打印结果,但我在所有结果行之间得到空行。 Can you tell me how can I delete all empty lines?你能告诉我如何删除所有空行吗?

My code:我的代码:

#!/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()

I tried few answers from behind but still got empty lines.我从后面尝试了几个答案,但仍然有空行。 My txt file looks like:我的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 

but I need file like:但我需要这样的文件:

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     

EDIT:编辑:

Found way to fix that problem:找到解决该问题的方法:

    line = ser.readline().decode('utf-8')[:-2]

It works fine now.它现在工作正常。 This -2 delete /n and that's all.这 -2 删除 /n 就是这样。

Either:任何一个:

import serial

with serial.Serial("/dev/ttyACM0", 9600) as ser:
    for line in ser:
        print line.rstrip('\n')

or要么

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)

According to these tips , this should do:根据这些提示,这应该这样做:

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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM