我使用 teraterm 作为我的客户端控制台并将控制台日志保存在某处。
当我打开 teraterm 并在我的 COM1 串行端口(与设备相连)上做某事时,它会在屏幕上打印消息并同时写入日志文件,
如果我想查看日志,以检测是否出现任何特殊单词。
我想如果我使用“打开”的方法,我只能在打开的时间获得全部内容,而不能在打开时间之后获得 teraterm 写的最新内容?
我怎么能做到这一点?先谢谢大家了~
我使用 teraterm 作为我的客户端控制台并将控制台日志保存在某处。
当我打开 teraterm 并在我的 COM1 串行端口(与设备相连)上做某事时,它会在屏幕上打印消息并同时写入日志文件,
如果我想查看日志,以检测是否出现任何特殊单词。
我想如果我使用“打开”的方法,我只能在打开的时间获得全部内容,而不能在打开时间之后获得 teraterm 写的最新内容?
我怎么能做到这一点?先谢谢大家了~
定期检查文件大小:
import os
import time
log_path = '/tmp/com1.log'
special_word = 'magic'
lastsize = 0
while 1:
if os.path.exists(log_path) and os.path.getsize(log_path) > lastsize:
with open(log_path) as f:
f.seek(lastsize)
for line in f:
if special_word in line:
print('Special word found')
lastsize = f.tell()
time.sleep(1)
您可以使用 teraterm 的宏语言,它允许开发人员扩展 teraterm 的行为。
对于您的具体情况,teraterm 的宏语言提供了wait 系列函数来等待特定的单词(或)模式序列。请注意,teraterm 宏语言不是 python,但它有自己的语法。
; wait for special world 'hello'
wait 'hello'
if result == 0 goto your_own_logic
如果您想要仅使用 python 的解决方案,还有其他方法。您可以使用pyserial python 库来连接串口,而不是使用 teraterm 连接串口。