raw_input
, bir "istemi mesajın" için bir parametre kabul yüzden çıkış mesajı için kullanabilirsiniz ve sonra geri almak ne onu getirebilirsiniz. Ancak, bu bilgi istemine geri dönmenize izin vermeyecektir, çünkü bu, girişin gerçekten bir parçası değildir. Ctrl + v tüm terminallerde çalışmadığını
def edit_text_at_terminal(text_to_edit):
import pyperclip
# Save old clipboard contents so user doesn't lose them
old_clipboard_contents = pyperclip.paste()
#place text you want to edit in the clipboard
pyperclip.copy(text_to_edit)
# If you're on Windows, and ctrl+v works, you can do this:
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys("^v")
# Otherwise you should tell the user to type ctrl+v
msg = "Type ctrl+v (your old clipboard contents will be restored):\n"
# Get the new value, the old value will have been pasted
new_value= str(raw_input(msg))
# restore the old clipboard contents before returning new value
pyperclip.copy(old_clipboard_contents)
return new_value
Not: Kendi amaçları için ise
s = "Hell" + raw_input("Hell")
print s
Genel olarak konuşamazsınız - stdout sadece yazılır. Terminali değiştirilebilen arabellek olarak kullanmak isterseniz, küfür kullanın veya tüm ekranı her yinelemede yeniden yazdırın. – delnan
Evet, kirli bir çözüm istiyorsanız, yeniden yazdırma çözümünü, '' sys.stdout'' özel bir dosya benzeri nesne ile bağlayarak deneyebilirsiniz. Aksi takdirde 'curses'' kütüphanesini öğrenirken biraz zaman geçirmelisiniz.İşte "curses" hakkında güzel bir öğretici: http://docs.python.org/howto/curses.html –
Teşekkürler. bu yüzden bunu yapmanın kolay bir yolu yok. Bu arada küfürler Windows için değil ... – TMS