में आउटपुट को फिर से लिखना कैसे है मेरे पास एक पायथन स्क्रिप्ट है और मैं इसे टर्मिनल में 0 से 100% तक बढ़ती संख्या प्रदर्शित करना चाहता हूं। मुझे पता है कि टर्मिनल पर संख्याओं को कैसे मुद्रित किया जाए, लेकिन मैं उन्हें "फिर से लिख" कैसे सकता हूं, इसलिए 0 1, 1 में 2 में बदल जाता है, और 100 तक?टर्मिनल
टर्मिनल
उत्तर
एक गाड़ी वापसी (\r
) एक नई पंक्ति के बिना मुद्रण पंक्ति के आरम्भ में कर्सर को रीसेट करता है, अगले प्रिंट अधिलेखन क्या पहले से ही मुद्रित है बनाने:
import time
import sys
for i in range(100):
print i,
sys.stdout.flush()
time.sleep(1)
print "\r",
इस लाइन को साफ नहीं करता है, इसलिए यदि आप इस विधियों का उपयोग करके घटते संख्याओं को प्रिंट करने का प्रयास करते हैं, आपको पिछले प्रिंटों से बचे हुए पाठ दिखाई देंगे। आप रिक्त स्थान के साथ अपने आउटपुट को पैड करके या अन्य उत्तरों में कुछ नियंत्रण कोड का उपयोग करके इसके आसपास काम कर सकते हैं।
यह नुस्खा here उपयोगी साबित होना चाहिए।
from tc import TerminalController
from time import sleep
import sys
term = TerminalController()
for i in range(10):
sys.stdout.write("%3d" % i)
sys.stdout.flush()
sleep(2)
sys.stdout.write(term.BOL + term.CLEAR_EOL)
नुस्खा terminfo
का उपयोग करता है टर्मिनल के बारे में जानकारी प्राप्त करने के लिए और टर्मिनलों के एक नंबर के लिए लिनक्स और ओएस एक्स में काम करता है: टीसी के रूप में है कि मॉड्यूल का उपयोग करना, निम्नलिखित कोड आप क्या चाहते हैं नहीं करता है। यह विंडोज पर काम नहीं करता है, हालांकि। (नीचे टिप्पणी के अनुसार, परीक्षण के लिए piquadrat के लिए धन्यवाद)।
संपादित करें: नुस्खा रंगों का उपयोग करने और रेखा के पुन: लिखने के लिए क्षमताओं को भी प्रदान करता है। इसमें एक तैयार पाठ प्रगति पट्टी भी है।
के रूप में अनुरोध किया है, मैं पर अपने कोड की कोशिश की विंडोज़ (विंडोज 7, पायथन 2.7)। आउटपुट "0 1 2 3 4 5 6 7 8 9" है। –
@piquadrat: बहुत बहुत धन्यवाद। –
यह काम करता है लेकिन यह अधिक है। – vy32
पर this answer आधार पर, लेकिन टर्मिनल नियंत्रक के बिना:
import time
import sys
for i in range(100):
sys.stdout.write("Downloading ... %s%%\r" % (i))
sys.stdout.flush()
time.sleep(1)
सूक्ति टर्मिनल (लिनक्स) और Windows कंसोल पर परीक्षण किया गया।
युक्ति: इस उदाहरण को आईडीएलई संपादक में न चलाएं।
blessings package का उपयोग करना - अपनी स्क्रीन (स्पष्ट/सीएलएस) स्पष्ट और दर्ज करें:
import sys
from blessings import Terminal
from time import sleep # <- boy, does this sound tempting a.t.m.
term = Terminal()
for i in range(6):
with term.location(term.width - 3, term.height - 3):
print('{}'.format(i))
sleep(2)
if (i == 3):
print('what was I doing, again?')
print('done')
CheeseShop से इसे स्थापित करने के लिए, बस ...
pip install blessings
- 1. टर्मिनल एक्ट टर्मिनल
- 2. टर्मिनल
- 3. टर्मिनल
- 4. टर्मिनल
- 5. टर्मिनल
- 6. टर्मिनल
- 7. टर्मिनल
- 8. टर्मिनल
- 9. टर्मिनल
- 10. टर्मिनल
- 11. टर्मिनल
- 12. टर्मिनल
- 13. टर्मिनल
- 14. टर्मिनल
- 15. टर्मिनल
- 16. टर्मिनल
- 17. टर्मिनल
- 18. टर्मिनल
- 19. टर्मिनल
- 20. टर्मिनल
- 21. टर्मिनल
- 22. बैश टर्मिनल किसी अन्य टर्मिनल पर रीडायरेक्ट
- 23. पायकुरल टर्मिनल
- 24. मैं टर्मिनल
- 25. मैक टर्मिनल
- 26. लिनक्स टर्मिनल
- 27. tmux: टर्मिनल
- 28. टर्मिनल एसएसएच
- 29. मैक टर्मिनल
- 30. मैक टर्मिनल
क्या यह मंच स्वतंत्र है? –
@ क्लेज़: शायद सभी टर्मिनलों के लिए नहीं। यह टाइपराइटर के लिए काम करता है। क्या वह मंच आपके लिए पर्याप्त स्वतंत्र है? :) –
मेरे निपटान (लिनक्स और विंडोज) पर दो प्लेटफार्मों पर, यह काम करता है। –