Search code examples
pythonraw-input

Starting raw_input() with pre determined text


I'd like to be able to get input from the user (through raw_input() or a module) and be able to have text automatically be already entered that they can add to, delete, or modify. I know in javascript when you're using a prompt, you can do it like

var = prompt("Enter your name: ","put name here")

and it will appear as:

Enter your name:
put name here

where 'put name here' is in the text box and can be modified. I'm hoping to implement this in a shell environment (I use unix) as opposed to a window.

Any ways to do this?

Oh and tell me if I need to clarify what I am hoping for more.


I don't think you guys understand what I'm trying to do.

I basically want to include the prompt in the input, but have the user be able to backspace out the prompt/edit it if they want.

The script would possibly be used for a simple shell based one line text editor, and a tab completion type thing.


Solution

  • On UNIX and UNIX-alikes, such as Mac OS X and Linux, you can use the readline module. On Windows you can use pyreadline.

    If you do it the way minitech suggests in his comment, write a little function to make it easier:

    def input_default(prompt, default):
        return raw_input("%s [%s] " % (prompt, default)) or default
    
    name = input_default("What is your name?", "Not Sure")