使用Lib.cmd在登录到stdou时发出命令

2024-10-01 04:48:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python还比较陌生。现在我写了一个python程序 A) 在一个线程中进行后台检查,并将结果记录到stdout。 B)还有一个Lib.cmd在循环中运行,以给出程序命令

import logging
from cmd import Cmd

class TPrompt(Cmd):
    def do_config(self):
        """prints the current config"""
        print({'loglevel': 20})

def check():
    while True:
        logger.info('Check')
        sleep(1)

def main():
    #start thread for checking 
    t1 = Thread(target=check)
    t1.setDaemon(True)
    t1.start()

    prompt = TPrompt(_conf)
    prompt.use_rawinput = True
    prompt.cmdloop('Starting prompt...')

shell输出如下所示:

prompt>
2018-01-11 13:02:38 - INFO - Check
config
{'loglevel': 20}
prompt> 2018-01-11 13:02:39 - INFO - Check
2018-01-11 13:02:40 - INFO - Check
con2018-01-11 13:02:46 - INFO - Check
fig
*** Unknown syntax: fig

发生的情况是,当前命令被日志中的换行符分隔,不再有效。使用cmd.use\u rawinput似乎没有帮助。 还有其他想法吗

有办法吗

谢谢


Tags: import命令程序infocmdconfigtruedef