在Python 2.6中使用while循环管道

时间:2012-06-29 18:09:34

标签: python

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

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

1 个答案:

答案 0 :(得分:1)

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

for line in sys.stdin:
  if line.lower().strip() == 'bye':
    break
  sys.stdout.write(do_something(line))
  sys.stdout.flush()