अगर यह अपने खुद के प्रयोजनों के लिए है, तो यहाँ एक गंदा सुबह क्लिपबोर्ड का उपयोग करके हैक खोने से पहले क्या था बिना है:
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
ध्यान दें कि Ctrl + V सभी टर्मिनलों में काम नहीं करता, विशेष रूप से विंडोज डिफ़ॉल्ट (ways to make it work हैं, हालांकि मैं इसके बजाय ConEmu का उपयोग करने की अनुशंसा करता हूं)।
अन्य ओएस के लिए कीस्ट्रोक स्वचालित करने से एक अलग प्रक्रिया शामिल होगी।
कृपया याद रखें कि यह एक त्वरित हैक है और "उचित" समाधान नहीं है। क्षणिक रूप से आपके क्लिपबोर्ड पर संग्रहीत पूरे पीएचडी शोध प्रबंधों के नुकसान के लिए मुझे ज़िम्मेदार नहीं ठहराया जाएगा।
उचित समाधान के लिए लिनक्स के लिए curses जैसे बेहतर दृष्टिकोण हैं, और विंडोज़ पर AutHotKey (शायद एक इनपुट बॉक्स फेंक दें, या कुछ कीस्ट्रोक/क्लिपबोर्ड जादूगर) देखें।
आम तौर पर बोलते हुए, आप नहीं कर सकते - stdout केवल लिखना है। यदि आप टर्मिनल को म्यूटेबल बफर के रूप में उपयोग करना चाहते हैं, तो प्रत्येक पुनरावृत्ति पर पूरे स्क्रीन को शाप का उपयोग करें या फिर से प्रिंट करें। – delnan
हाँ यदि आप एक गंदे समाधान चाहते हैं तो आप एक कस्टम फ़ाइल-जैसी ऑब्जेक्ट के साथ 'sys.stdout'' को हुक करके पुनः प्रिंट समाधान का प्रयास कर सकते हैं। अन्यथा आपको 'शाप' पुस्तकालय सीखने में कुछ समय बिताना होगा।'' Curses'' के बारे में एक अच्छा ट्यूटोरियल यहां दिया गया है: http://docs.python.org/howto/curses.html –
धन्यवाद। इसलिए ऐसा करने का कोई आसान तरीका नहीं है। शाप विंडोज़ के लिए नहीं है ... – TMS