मैं एक अजगर आधारित एप्लिकेशन है कि एक साधारण पढ़ने के eval-print-पाश में कुछ आदेशों को स्वीकार कर सकते हैं। मैं इनपुट प्राप्त करने के लिए raw_input('> ')
का उपयोग कर रहा हूं। यूनिक्स-आधारित सिस्टम पर, मैं चीजों को थोड़ा बेहतर बनाने के लिए import readline
भी करता हूं। यह सब ठीक काम कर रहा है।एक पायथन आरईपीएल को कैसे कार्यान्वित करें जो अच्छी तरह से असीमित आउटपुट को संभालता है?
समस्या अतुल्यकालिक घटनाओं में आ रहा है देखते हैं, और मैं जैसे ही वे ऐसा उत्पादन प्रिंट करना चाहते हैं कि है। दुर्भाग्य से, यह चीजें बदसूरत लगती है। ">" स्ट्रिंग आउटपुट के बाद फिर से दिखाई नहीं दे रही है, और यदि उपयोगकर्ता टाइपिंग के माध्यम से आधा रास्ते है, तो यह अपने पाठ को आधे में चॉप करता है। इसे प्रिंट करने के बाद शायद उपयोगकर्ता की टेक्स्ट-इन-प्रोग्रेस को फिर से खींचा जाना चाहिए।
यह लगता है जैसे कि यह एक हल समस्या होना चाहिए। ऐसा करने का सही तरीका क्या है?
भी ध्यान रखें कि अपने कुछ उपयोगकर्ताओं के Windows- आधारित हैं।
TIA
संपादित करें: स्वीकार किए जाते हैं जवाब Unixy प्लेटफार्मों (जब ReadLine मॉड्यूल उपलब्ध है) के तहत काम करता है, लेकिन किसी को भी जानता है Windows के तहत इस काम करने के लिए कैसे, यह बहुत सराहना की जाएगी!
धन्यवाद, readline.get_line_buffer() एक अच्छी शुरुआत है। अगर किसी के पास विंडोज़ में यह काम करने के बारे में कोई सुझाव है (जिसमें कोई रीडलाइन मॉड्यूल नहीं है), तो मुझे बताएं। – andy
क्या यह सिगविन में काम करता है, शायद? – cdleary