获取用户输入而不中断程序执行

2024-04-23 19:27:20 发布

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

我正在开发一个程序(实际上是一个聊天机器人,你可以看到代码here,如果你愿意的话),它一直在运行一个无限循环。在

我使用asyncio作为代码的一部分,因此我最初尝试创建另一个接收输入并检查命令的子例程。然而,这似乎并不奏效。在

{2}我想在不中断程序执行的情况下,{2}要做的就是不中断程序的执行。优选地,它将有一个>字符和行,该字符和行位于屏幕底部,程序输出显示在其上方,并允许输入。在

这可能与asyncio有关吗,或者我需要研究我的程序的多线程或其他什么吗?在

编辑:我有一个想法,也许我可以使用一个ncurses图形用户界面,在底部有一个输入字段,在输入字段上方有一个机器人的所有输出。这有可能吗?在


Tags: 代码命令程序asyncio编辑here屏幕情况
2条回答

您应该能够使用asyncio,因为StdIn只是您可以选择的另一个流。。。在

from threading import Thread
import shlex


def endless_job():
    while True:
        pass


job = Thread(target=endless_job)
job.start()

while True:
    user_input = input('> ')
    print(shlex.split(user_input))

shlex模块帮助您解析用户输入的命令行:)

如果需要将参数传递给unterminal_job函数,可以执行以下操作:

^{pr2}$

其中,args和{}分别代表位置参数和命名参数。在

相关问题 更多 >