मैंने पाइथन के भीतर प्रगति पट्टी के लिए अलग-अलग समाधान देखे हैं, लेकिन सरल स्टडआउट समाधान मेरी परियोजना के लिए काम नहीं कर रहे हैं। मेरे पास कई कक्षाएं हैं और STDOUT को आउटपुट जानकारी के लिए "लॉगिंग" मॉड्यूल का उपयोग करें। मेरे पास एक ऐसा कार्य है जिसमें मैं एक पंक्ति पर प्रगति पट्टी दिखाना चाहता हूं, हर बार बफर को फ्लश करना चाहता हूं। सरल प्रगति कीलॉगिंग मॉड्यूल के माध्यम से पाइथन प्रोग्रेस बार
उदाहरण:
for i in range(100):
time.sleep(1)
sys.stdout.write("\r%d%%" %i)
sys.stdout.flush()
जब मैं STDOUT के माध्यम से लिखना और फिर बफर फ्लश करने के लिए प्रयास करते हैं, या तो बफर प्लावित नहीं है या प्रगति कहीं भी जाने नहीं देता है। मैं इसे संभव बनाने के लिए किसी प्रकार की थ्रेडिंग या जटिल प्रक्रिया से बचने की उम्मीद कर रहा हूं। क्या ऐसा करने का कोई पसंदीदा तरीका है?
"प्रिंट" का उपयोग करने में समस्या यह है कि यह प्रत्येक मान को एक नई लाइन पर फेंकता है जो आउटपुट को प्रगति पट्टी नहीं बना रहा है। एसटीडीओटीटी को बफर को फ्लश करना और मौजूदा लाइन पर लिखना है, लेकिन लॉगिंग करने वाले कोड में इसका उपयोग करते समय यह काम नहीं करता है। आपको याद है, मैं प्रगति बार कोड के चारों ओर किसी भी लॉगिंग मॉड्यूल वाक्यविन्यास लपेट नहीं रहा हूँ। –
ऊपर पोस्ट किए गए सटीक कोड का उपयोग करके, मुझे लगता है कि आउटपुट को जगह में बदल दिया जा रहा है। क्या आप प्रत्येक नंबर को एक नई लाइन पर देख रहे हैं? – jknupp