2011-12-14 7 views
24

मैं उबंटू 11.10 (लिनक्स) पर पायथन 3.2 का उपयोग कर रहा हूं। मेरी नई कोड का एक टुकड़ा इस तरह दिखता है:क्या Python 3 के कमांड लाइन इंटरफ़ेस में इनपुट() को पूर्ववत करना संभव है?

text = input("TEXT=")

यह शीघ्र बाद कुछ पूर्वनिर्धारित स्ट्रिंग प्राप्त करने के लिए संभव है, इसलिए यदि आवश्यक हो तो मैं इसे समायोजित कर सकते हैं? यह इस तरह से होना चाहिए:

python3 file 
TEXT=thepredefinedtextishere 

अब मैं बैकस्पेस 3 बार

TEXT=thepredefinedtextish 

अब मैं Enter दबाएँ दबाते हैं, और चर textthepredefinedtextish

+0

संक्षिप्त उत्तर नहीं है, लेकिन ऐसा करने के लिए 'शाप' या 'रीडलाइन' चाल होने के बावजूद है। प्रश्न के लिए +1। –

+0

"ब्लॉगर दर्ज करें (डिफ़ॉल्ट: 3)" जो भी आप पूछते हैं वह नहीं करता है, लेकिन एक ही समस्या हल करता है। –

+0

@LennartRegebro: यह बिल्कुल वही उद्देश्य नहीं करता है। कल्पना करें कि उपयोगकर्ता को कुछ निश्चित पूर्वनिर्धारित के साथ खोज पथ की एक सूची दर्ज करना है। उपयोगकर्ता शायद इसे बदलने की बजाय पूर्वनिर्धारित सूची को पूरक करना चाहता है। –

उत्तर

21
अपने अजगर दुभाषिया तो

होना चाहिए जीएनयू रीडलाइन के खिलाफ जुड़ा हुआ है, input() इसका उपयोग करेगा। इस मामले में, निम्नलिखित कार्य करना चाहिए:

def input_with_prefill(prompt, text): 
    def hook(): 
     readline.insert_text(text) 
     readline.redisplay() 
    readline.set_pre_input_hook(hook) 
    result = input(prompt) 
    readline.set_pre_input_hook() 
    return result 
+0

डिफ़ॉल्ट रूप से मैक ओएस एक्स पर काम नहीं करता है। साथ ही, मुझे 'इनपुट()' 'raw_input() 'में बदलना पड़ा था या यह" नेमइरर: नाम' * फेंक देगा * जो मैंने टाइप किया है * 'परिभाषित नहीं किया गया है "। –

+2

@EdwardFalk इसमें मैक ओएस एक्स के साथ कुछ लेना देना नहीं है। आप पाइथन 2 का उपयोग कर रहे हैं, जबकि यह प्रश्न पायथन 3 के बारे में है। –

+0

आह, उस भाग को याद किया। –

संबंधित मुद्दे