हल: कंसोल आउटपुट को उसी स्थान पर लिखें

पायथन अनुप्रयोगों के साथ काम करते समय डेवलपर्स के लिए एक ही स्थान पर कंसोल आउटपुट लिखना एक उपयोगी तकनीक हो सकती है, खासकर जब कमांड लाइन में यूजर इंटरफेस विकसित करना, प्रगति संकेतक बनाना और वास्तविक समय में कंसोल डेटा अपडेट करना। यह आलेख कंसोल आउटपुट को ओवरराइट करने के समाधान पर चर्चा करेगा, कोड को चरण-दर-चरण समझाएगा, और विशिष्ट पुस्तकालयों और अंतर्निहित पायथन फ़ंक्शंस में गोता लगाएगा जो इस कार्य को संभव बनाते हैं।

इसे प्राप्त करने के लिए, हम प्रसिद्ध पायथन लाइब्रेरी "कर्स" का उपयोग कर सकते हैं जो विशेष रूप से टर्मिनल-आधारित एप्लिकेशन बनाने के लिए डिज़ाइन किया गया है जो टेक्स्ट-आधारित उपयोगकर्ता इंटरफ़ेस के उपयोग पर काफी हद तक निर्भर करता है। हालाँकि, सरलता और समझने में आसानी के उद्देश्य से, हम कंसोल आउटपुट को ओवरराइट करने के लिए पायथन के अंतर्निहित "sys" और "time" मॉड्यूल का उपयोग करेंगे।

पायथन में कंसोल आउटपुट को ओवरराइट करना

मुख्य विचार का उपयोग करना है sys.stdout.write() फ़ंक्शन, जो हमें एक ही लाइन में प्रिंट करने की अनुमति देता है कैरिज रिटर्न लाइन की शुरुआत में लौटने के लिए कैरेक्टर ("आर") प्रभावी ढंग से हमें आउटपुट को ओवरराइट करने की इजाजत देता है।

यहां पायथन का उपयोग करके कंसोल आउटपुट को ओवरराइट करने का एक उदाहरण दिया गया है:

import time
import sys

for i in range(10):
    sys.stdout.write("rStep: %d" % i)
    sys.stdout.flush()
    time.sleep(1)

कोड की चरण-दर-चरण व्याख्या

1. सबसे पहले, आवश्यक मॉड्यूल आयात करें:

   import time
   import sys
   

RSI पहर मॉड्यूल का उपयोग पुनरावृत्तियों के बीच विलंब को जोड़ने के लिए किया जाएगा व्यवस्था कंसोल पर आउटपुट लिखने के लिए मॉड्यूल का उपयोग किया जाएगा।

2. इसके बाद, प्रगति काउंटर का अनुकरण करते हुए, संख्याओं की एक श्रृंखला पर पुनरावृति करने के लिए एक लूप बनाएं:

   for i in range(10):
   

यह लूप 0 से 9 तक पुनरावृत्त होता है, प्रभावी रूप से दस बार चलता है।

3. लूप के अंदर, का उपयोग करें sys.stdout.write() एक लेबल के साथ वर्तमान पुनरावृत्ति संख्या को मुद्रित करने का कार्य:

   sys.stdout.write("rStep: %d" % i)
   

"आर" वर्ण कैरिज रिटर्न है जो लाइन की शुरुआत में रीसेट के रूप में कार्य करता है, जिससे अगले आउटपुट को वर्तमान आउटपुट को ओवरराइट करने की इजाजत मिलती है।

4. उपयोग सुनिश्चित करें sys.stdout.flush() कंसोल पर लिखने के बाद:

   sys.stdout.flush()
   

फ्लश() फ़ंक्शन आंतरिक बफर को साफ़ करता है और यह सुनिश्चित करता है कि आउटपुट तुरंत प्रदर्शित हो।

5. अंत में, का उपयोग करके विलंब जोड़ें समय पर सोये() समारोह:

   time.sleep(1)
   

यह विराम एक सेकंड तक रहेगा, जिससे ओवरराइट किए जा रहे आउटपुट का निरीक्षण करना आसान हो जाएगा।

अब आप देख सकते हैं कि प्रत्येक पुनरावृत्ति पर कंसोल आउटपुट को कैसे अधिलेखित किया जा रहा है।

"sys" लाइब्रेरी का अवलोकन

RSI व्यवस्था लाइब्रेरी एक शक्तिशाली अंतर्निहित पायथन मॉड्यूल है जो दुभाषिया के आंतरिक और विभिन्न सिस्टम-विशिष्ट मापदंडों तक पहुंच प्रदान करता है। इस लेख में, हमने उपयोग पर ध्यान केंद्रित किया है sys.stdout.write() और sys.stdout.flush() कंसोल आउटपुट को अधिलेखित करने का कार्य करता है। हालाँकि, "sys" लाइब्रेरी कई अन्य कार्यक्षमताएँ प्रदान करती है, जैसे कमांड लाइन तर्क, बाइटऑर्डर, अपवाद और पूर्व-परिभाषित पथ।

"समय" लाइब्रेरी का अवलोकन

RSI पहर लाइब्रेरी एक अन्य अंतर्निहित पायथन मॉड्यूल है जो समय हेरफेर और प्रसंस्करण से संबंधित विभिन्न प्रकार के कार्य प्रदान करता है। हमारे उदाहरण में, हमने इसका उपयोग किया समय पर सोये() पुनरावृत्तियों के बीच विलंब पैदा करने का कार्य। "समय" लाइब्रेरी निष्पादन समय को मापने, समय प्रारूपों के बीच परिवर्तित करने और वर्तमान समय प्राप्त करने के लिए अन्य उपकरण भी प्रदान करती है। यह मॉड्यूल पायथन अनुप्रयोगों में समय-संबंधित कार्यों या शेड्यूलिंग कार्यों के साथ काम करने वाले डेवलपर्स के लिए आवश्यक है।

संबंधित पोस्ट:

एक टिप्पणी छोड़ दो