2

我使用 teraterm 作为我的客户端控制台并将控制台日志保存在某处。

当我打开 teraterm 并在我的 COM1 串行端口(与设备相连)上做某事时,它会在屏幕上打印消息并同时写入日志文件,

如果我想查看日志,以检测是否出现任何特殊单词。

我想如果我使用“打开”的方法,我只能在打开的时间获得全部内容,而不能在打开时间之后获得 teraterm 写的最新内容?

我怎么能做到这一点?先谢谢大家了~

4

2 回答 2

0

定期检查文件大小:

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)
于 2013-06-18T04:28:29.093 回答
0

您可以使用 teraterm 的宏语言,它允许开发人员扩展 teraterm 的行为。

对于您的具体情况,teraterm 的宏语言提供了wait 系列函数来等待特定的单词(或)模式序列。请注意,teraterm 宏语言不是 python,但它有自己的语法。

; wait for special world 'hello'
wait 'hello'
if result == 0 goto your_own_logic

如果您想要仅使用 python 的解决方案,还有其他方法。您可以使用pyserial python 库来连接串口,而不是使用 teraterm 连接串口。

于 2015-05-26T15:49:36.523 回答