0

我对 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 循环的方法。

希望这是有道理的,谢谢。

4

1 回答 1

1

诀窍是首先不要使用while循环。

for line in sys.stdin:
  if line.lower().strip() == 'bye':
    break
  sys.stdout.write(do_something(line))
  sys.stdout.flush()
于 2012-06-29T18:31:21.693 回答