我是Python管道的新手,但我认为这是我的问题的答案。我有一个文件cleverbot.py从raw_input获取无限输入并将结果打印到命令行。这是在整个过程中保持一个while循环的时候完成的,当你说“再见”脚本退出时。
现在,有人可以给我一个例子,我可以将输入传递给这个脚本,然后接收输出,而不会结束循环吗?循环充当会话,重要的是脚本继续在此while循环内持续运行,同时能够输入管道。
以下是代码片段。对于任何想要充分利用pycleverbot库的人来说。
def main():
import sys
cb = Session()
q = ''
while q != 'bye':
try:
q = raw_input("> ")
except KeyboardInterrupt:
print
sys.exit()
print cb.Ask(q)
cb = Session()在首次制作后根本无法重新创建。这就是while循环到位的原因。我缺乏必要的逻辑来看待不使用while循环的方法。
希望这是有道理的,谢谢。
答案 0 :(得分:1)
诀窍是首先不要使用while循环。
for line in sys.stdin:
if line.lower().strip() == 'bye':
break
sys.stdout.write(do_something(line))
sys.stdout.flush()