while循环中的Python输入
我正在用python制作一个IRC机器人, 现在我想要一些控制台命令 主函数在while循环中,因此我无法将while循环中的Python输入,python,bots,irc,Python,Bots,Irc,我正在用python制作一个IRC机器人, 现在我想要一些控制台命令 主函数在while循环中,因此我无法将input\u raw()放入。有人知道如何在不中断循环的情况下获取用户输入吗 谢谢 您可以尝试将非阻塞套接字与选择一起使用。比如: from sys import stdin from select import select while True: print "Enter command> ", # Add on_write sockets as necess
input\u raw()
放入。有人知道如何在不中断循环的情况下获取用户输入吗
谢谢 您可以尝试将非阻塞套接字与
选择一起使用。比如:
from sys import stdin
from select import select
while True:
print "Enter command> ",
# Add on_write sockets as necessary
on_read, _, _ = select([stdin], [], [], 5)
if on_read:
command = stdin.readline()
print "Now I can process you command..."
else:
print "No command, we can do here something else..."
解决问题,使用线程,
来源:使用线程。一个用于IRC处理,一个用于输入。我制作了两个线程,一个用于IRC基,一个用于a=raw_输入,只是为了测试。。。但是我不能做任何输入用你的代码示例更新你的问题只有当IRC bot函数可以在每个循环中“泵送”时,这才有效。如果它是一个进入自己阻塞循环的服务,那么仍然需要线程。@jdi如果IRC bot函数是一个需要进行大量计算的函数或类似的东西(使用太多CPU),那么线程将不会有多大帮助。但通常情况下,IRC bot应该执行读/写操作。是的,我并没有真正指定OP应该使用线程覆盖进程。我刚才说的是,OP可能必须完全重组“irc机器人”功能,使其能够处理挂起的操作并退出,这样它才能在您的建议下工作。嗯,这对我来说有点太复杂了。。。当我学习了更多python之后,我将重新研究这个问题