I’m completely new to Python piping but I think it’s the answer to my problem. I’ve got a file cleverbot.py that takes endless input from raw_input and prints out the results to the command line. This is done while staying in a while loop the whole time, and when you say “bye” the script exits.
Now, can someone give me an example where I can pipe inputs to this script and then receive the output, without it ending the loop? The loop acts as a session and it’s important that the script continues to run constantly inside this while loop while being able to have inputs piped to it.
Here is a snippet of the code. For anyone that wants to get the full thing its the pycleverbot library.
def main():
import sys
cb = Session()
q = ''
while q != 'bye':
try:
q = raw_input("> ")
except KeyboardInterrupt:
print
sys.exit()
print cb.Ask(q)
The cb = Session() can’t be recreated at all after it’s first made. That’s why the while loop is in place. I lack the necessary logic to see a way of not using a while loop.
Hope this makes sense, thanks.
The trick is to not use a while loop in the first place.