tab compleation input

Eli Criffield elicriffield at gmail.com
Mon Nov 13 14:30:16 EST 2006


Not sure what your trying to do, but it doesn't work. :)
valid doesn't exsist,  and if you make vaid =
sys.stdin.readline().rstrip(), then answer doesn't exsist.

Either way, it doesn't take the tab tell after you hit enter, Not
really what i was getting at. What i want is like a bash shell prompt.
>From a bash shell prompt try ls <TAB> <TAB>, like that. (readline does
that for bash, but i don't know how to get readline to do anything but
python commands in python).

Eli

dakman at gmail.com wrote:
> On a gui on this would be a little bit easier but it's a completley
> diffrent realm when doing it in the console. It makes it a little more
> difficult when using stdin.readline() because you can only read line by
> line. Here is my implmentation.
>
> import sys
>
> validanswers = [ 'yes', 'no', 'maybe', 'tuesday', 'never' ]
> while True:
>     sys.stdout.write("Answer the Question: ")
>     answer = sys.stdin.readline().rstrip()
>     for valid in validanswers:
>         if valid.startswith(answer.strip("\t")):
>             answer = valid
>     else:
>         print "Invalid Answer: Please enter a valid answer"
>         continue
>     break
> print "You have answered, ", answer
>
> I'm at school and wasn't able to test it, but it looks like it should
> work.
>
> Eli Criffield wrote:
> > Here is what i want to do. I have a question in my program, and i want
> > to do tab completion for the valid answers.
> >
> > Say i have :
> > --snip--
> > validanswers = [ 'yes', 'no', 'maybe', 'tuesday', 'never' ]
> >
> > #and i ask
> >
> > sys.stdout.write("Answer the Question: ")
> > answer = sys.stdin.readline().rstrip()
> > if answer not in valid answers:
> >   print "Wrong!"
> > --snip--
> >
> > But what i want is when i enter the answer i can hit tab and it'll
> > complete one of the validanswers
> > I know i can do tab complete with readline and 'raw_input('> ')' but
> > that's only to execute python commands right?
> > 
> > Eli




More information about the Python-list mailing list