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