我目前正在尝试从串行连接记录数据。我正在使用 python 模块pyserial。
从串行连接读取一行后,我想为其添加时间戳,然后将其写入文件。
这在大多数情况下都有效,但有时时间戳会出现在文件中线。离尾行字符很远。
这是我正在使用的代码片段:
self.serialconnection = serial.Serial(port=self.port, baudrate=115200,
timeout=0)
def run(self):
openfile = open(self.logfile, 'a')
while not self.stoprequest.isSet():
try:
linefromserial = self.serialconnection.readline()
if linefromserial:
linefromserial = linefromserial.replace('\00', '')
datenow = datetime.datetime.strftime(datetime.datetime.now(), "%Y-%m-%d %H:%M:%S ")
dated_linefromserial = datenow + linefromserial
openfile.write(dated_linefromserial)
except self.stoprequest.isSet():
openfile.close()
break
我没有对串行连接使用超时,因为我在单独的线程中运行它,并且我不希望它阻塞。
那么这种方法有什么明显的问题吗?如何确定问题是由于 readline() 方法未能按我的设想运行,还是文件写入问题?