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.
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")
Mmm, kinda hack, but try this one.
Windows:
import win32com.client as win
shell = win.Dispatch("WScript.Shell").SendKeys("Put name here")
raw_input("Enter your name: ")
In Linux/Unix environment, you can use the pyreadline
, readline
or curses
libraries. You can find one possible solution here :
def rlinput(prompt, prefill=''):
readline.set_startup_hook(lambda: readline.insert_text(prefill))
try:
return raw_input(prompt)
finally:
readline.set_startup_hook()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.