Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Python Programming Language

User input with a default value that can be modified


Hello the list :-)

I do a little program that permit the user to manage list of sentences.
This program runs into a linux shell.
The user can add, modify and delete the sentences.

What I want to do is :

When the user want to modify one sentence, I would like to do this :

Modify your sentence : The_sentence_appear_here_followed_by_a_cursor

And the user can go back with the cursor, like in the bash shell,
delete, modify, and when pressing enter, the new value (or the same if
not modified) is put in my variable.

Of course, the first think I did as a newbie was :

new_sentence = raw_input("Modify your sentence : "old_sentence)

But OF COURSE, stupid am I, the user cannot put the cursor back into
the old sentence !

I think about playing with some sophisticated keyboard exercise where
I could program a new input command with a value already appearing as
answer, but I am pretty sure that it exists already.

What do you think about it ?

Actually, it is quite difficult to find anything on it, because the
keywords are not very obvious (input, default answer, ...)

Thank you for your help.

Etienne
--
(\__/)
(='.'=)          Ceci est un petit lapin. Copiez/collez-le dans
(")_(")          votre signature pour l'aider dominer le monde

On May 28, 11:52 am, "Etienne Hilson" <etienne.hil@gmail.com>
wrote:

Check into the readline module.  This is what I came up with.  A
second thread injects the text into the open readline instance.
Hopefully the experts will show the _right_ way to do it.

import readline, threading
import time

class write(threading.Thread):
                def __init__ (self, s):
                        threading.Thread.__init__(self)
                        self.s = s

                def run(self):
                        time.sleep(.01)
                        readline.insert_text(self.s)
                        readline.redisplay()

write("Edit this sentence").start()
s = raw_input("prompt:")

print s

~Sean

On May 28, 11:52 am, "Etienne Hilson" <etienne.hil@gmail.com>
wrote:

Check into the readline module.  This is what I came up with.  A
second thread injects the text into the open readline instance.
Hopefully the experts will show the _right_ way to do it.

import readline, threading
import time

class write(threading.Thread):
                def __init__ (self, s):
                        threading.Thread.__init__(self)
                        self.s = s

                def run(self):
                        time.sleep(.01)
                        readline.insert_text(self.s)
                        readline.redisplay()

write("Edit this sentence").start()
s = raw_input("prompt:")

print s

~Sean

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc