我试图从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)
谢谢!
答案 0 :(得分:0)
f.write(str(EAS)+'\n')
这就是问题所在。您在EAS之后附加换行符。将其更改为:
f.write(str(EAS))