Python Serial不能在一行读取

时间:2017-05-30 01:50:57

标签: python line pyserial

我试图从EAS解码器读取串行数据并使用python将其记录到文本文件中。 当我使用商业串行记录器时,这就是我得到的:

1A Broadcast station or cable system has issued a Tornado Warning for all of 
 Iowa beginning at 7:54 pm and ending at 8:54 pm (MEWDOG)

运行文件时的输出是这样的(我没有包含整个输出,但你明白了):

输出图像

这是我的代码如下。它只将第一个字符写入文本文件,但我需要将它全部放在文本文件输出的一行上。

import serial
import os
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 'COM2'
ser.open()
def write_txt(EAS):
    import os.path
    fileName = "eas.txt"
    pathOfTxt = os.path.abspath(os.path.join(fileName))
    with open(pathOfTxt, 'w') as f:
        f.write(str(EAS)+'\n')
    return()

while True:
    message = ser.read()
    write_txt(message)
    print(message)

谢谢!

1 个答案:

答案 0 :(得分:0)

f.write(str(EAS)+'\n')

这就是问题所在。您在EAS之后附加换行符。将其更改为:

f.write(str(EAS))