本质上,我想要这个线程中的内容:Output to console while preserving user input in ruby,但是在Python中。我在google上搜索了很长一段时间,找到了一个几乎可以正常工作的解决方案,只是它阻塞了主线程,只要我没有输入任何内容并按enter键。你知道吗
我不想发生的事情的一些结果如下:
/raw:jtv!jtv@jtv.tmi.twitch.tv PRIVMSG #cobaltstreak :USERCOLOR ullr_son_of_sif #DAA520
我想要的示例输入是:
:jtv!jtv@jtv.tmi.twitch.tv PRIVMSG #cobaltstreak :USERCOLOR ullr_son_of_sif #DAA520
/raw
PRIV:jtv!jtv@jtv.tmi.twitch.tv PRIVMSG #cobaltstreak :SPECIALUSER nightbot subscriber
MSG #cobaltstreak :This shouldn't be here, but on the same line with /raw
这意味着,我希望控制台的底线保留输入,同时输出主线程中发生的所有事情,而不影响输入。你知道吗
我现在的代码是:
def console(q, m, lock):
while 1:
raw_input() # After pressing Enter you'll be in "input mode"
with lock:
i = raw_input('> ')
cmd = i.split(' ')[0]
msg = i.strip(cmd + ' ')
q.put(cmd)
m.put(msg)
if cmd == 'quit':
break
还有:
cmd = cmd_queue.get()
msg = msg_queue.get()
action = cmd_actions.get(cmd)
if action is not None:
action(stdout_lock, msg)
注意,上面的代码是while循环的前几行。你知道吗
我在Windows上使用python2.7.6
目前没有回答
相关问题 更多 >
编程相关推荐