2011-03-30 13 views
5

मैं एक स्ट्रिंग को कैसे संपादित कर सकता हूं जिसे मैंने अभी मुद्रित किया है? उदाहरण के लिए, एक उलटी गिनती काउंटर के लिए (पहले प्रिंट 30, फिर इसे 2 9 में बदलता है और इसी तरह)मैं एक स्ट्रिंग को कैसे संपादित कर सकता हूं जो stdout पर मुद्रित किया गया था?

धन्यवाद।

+0

यह [कताई कर्सर समस्या] पर एक भिन्नता है (http://stackoverflow.com/questions/4995733/how-to-create-a-spinning-command-line-cursor-using-python)। –

उत्तर

6

कैरिज रिटर्न \r प्रिंट करें और यह कर्सर को लाइन पर शुरुआत में ले जाएगा। सुनिश्चित करें कि आप अंत में एक नई लाइन \n प्रिंट न करें, क्योंकि आप लाइनों को बैकट्रैक नहीं कर सकते हैं। इसका मतलब है आप की तरह कुछ करने के लिए है:

import time 
import sys 
sys.stdout.write('29 seconds remaining') 
time.sleep(1) 
sys.stdout.write('\r28 seconds remaining') 

(के रूप में print का उपयोग, जो यह क्या stdout को लिखते हैं के अंत में एक नई पंक्ति जोड़ता है करने का विरोध किया।)

+1

पायथन 3 में आप एंड पैरामीटर का उपयोग कर सकते हैं ताकि सुनिश्चित किया जा सके कि अंत में कोई नई लाइन नहीं जोड़ा गया है: 'प्रिंट (एक्स, एंड = "")' – Joschua

+1

पायथन 3 से पहले आप 'प्रिंट' कथन के बाद ''' 'छोड़ सकते हैं अंत में कोई नई लाइन नहीं जोड़ा गया है: 'प्रिंट x,' –

+0

मैंने उस कोड को सीधे कॉपी किया और यह पायथन 2.7 में एक नई लाइन पर प्रिंट करता है – User

0

यदि आप एक xterm- जैसे आउटपुट डिवाइस पर, आप जिस तरह से करते हैं वह उत्पादन को ओवरराइट कर रहा है। आपको यह सुनिश्चित करना होगा कि जब आप कैरिज-रिटर्न (बिना किसी नई लाइन के) के साथ समाप्त होने वाले नंबर को लिखते हैं, जो कर्सर को अगली पंक्ति में आगे बढ़े बिना लाइन की शुरुआत में ले जाता है। आपके द्वारा लिखे गए अगले आउटपुट वर्तमान प्रदर्शित नंबर को प्रतिस्थापित करेंगे।

0

आप जो भी मुद्रित करते हैं उसे बदल नहीं सकते हैं। मुद्रित क्या मुद्रित है। लेकिन, bradley.ayers की तरह कहा कि आप लाइन की शुरुआत में वापस आ सकते हैं और पुराने मूल्य पर कुछ नया प्रिंट कर सकते हैं।

1

यदि आप यूनिक्स/लिनक्स को लक्षित कर रहे हैं तो "श्राप" लेखन कंसोल प्रोग्राम को वास्तव में आसान बनाता है। यह संभालती रंग, कर्सर स्थिति आदि अजगर आवरण की जाँच करें: http://docs.python.org/library/curses.html

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

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