Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python在运行时检测RM日志中出现的特殊单词_Python_Python 2.7_Python 3.x - Fatal编程技术网

如何使用Python在运行时检测RM日志中出现的特殊单词

如何使用Python在运行时检测RM日志中出现的特殊单词,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我使用teraterm作为客户端控制台,并将控制台日志保存在某个位置 当我打开teraterm并在COM1串行端口(与设备相连)上执行操作时, 它将在屏幕上打印消息并同时写入日志文件 如果我想查看日志,检测是否出现任何特殊单词 我想如果我用“打开”的方法,我只能在打开的时间内得到全部内容,但不能在打开的时间后得到最新的内容 我怎样才能做到这一点? 提前感谢大家~定期检查文件大小: import os import time log_path = '/tmp/com1.log' special_

我使用teraterm作为客户端控制台,并将控制台日志保存在某个位置

当我打开teraterm并在COM1串行端口(与设备相连)上执行操作时, 它将在屏幕上打印消息并同时写入日志文件

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

我想如果我用“打开”的方法,我只能在打开的时间内得到全部内容,但不能在打开的时间后得到最新的内容

我怎样才能做到这一点?
提前感谢大家~

定期检查文件大小:

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的宏语言提供了一系列函数来等待特定的单词(或)模式序列。请注意,teraterm宏语言不是python,但它有自己的语法

; wait for special world 'hello'
wait 'hello'
if result == 0 goto your_own_logic
如果您想要一个纯python的解决方案,还有其他方法。您可以使用python库连接串行端口,而不是使用teraterm连接串行端口

重复: