पायथन में ट्रैकिंग प्रगति

प्रगति संकेतकों की आवश्यकता क्यों है?


प्रगति संकेतक (प्रगति बार) - कार्य प्रक्रिया का एक दृश्य प्रदर्शन। वे हमें इस बारे में चिंता करने की ज़रूरत से छुटकारा दिलाते हैं कि क्या स्क्रिप्ट लटका हुआ है, इसके निष्पादन की गति का सहज ज्ञान दें और सुझाव दें कि पूरा होने तक कितना समय बचा है।


एक व्यक्ति जिसने पहले प्रगति संकेतकों का उपयोग नहीं किया है, वह सुझाव दे सकता है कि उनका कार्यान्वयन कोड को बहुत जटिल कर सकता है। सौभाग्य से, ऐसा नहीं है। नीचे दिए गए छोटे उदाहरण बताते हैं कि कैसे जल्दी और आसानी से कंसोल में या तेज़ी से प्राप्त होने वाले PySimpleGG ग्राफिक्स लाइब्रेरी के इंटरफ़ेस में प्रगति शुरू होती है।


प्रगति का उपयोग करना


हमारे पास पहला प्रोग्रेस मॉड्यूल है


आप सभी की आवश्यकता है कि अपेक्षित पुनरावृत्तियों की संख्या, संकेतक का प्रकार और प्रत्येक पुनरावृत्ति पर फ़ंक्शन को कॉल करें:


import time from progress.bar import IncrementalBar mylist = [1,2,3,4,5,6,7,8] bar = IncrementalBar('Countdown', max = len(mylist)) for item in mylist: bar.next() time.sleep(1) bar.finish() 

काम का परिणाम:



हर स्वाद के लिए संकेतक हैं:



हम tqdm का उपयोग करते हैं


अगली पंक्ति में tqdm लाइब्रेरी है।


पायथन और सीएलआई के लिए तेजी से और एक्स्टेंसिबल प्रगति संकेतक


पिछले एक के समान परिणाम प्राप्त करने के लिए केवल एक फ़ंक्शन कॉल की आवश्यकता होगी:


 import time from tqdm import tqdm mylist = [1,2,3,4,5,6,7,8] for i in tqdm(mylist): time.sleep(1) 

हमें मिलता है:



बेशक, बंडल सेटिंग्स और विकल्पों का एक गुच्छा के साथ आता है।


हम जीवित-प्रगति का उपयोग करते हैं


सिंटैक्स का एक और संस्करण , पिछले उदाहरणों की तुलना में अधिक डिफ़ॉल्ट एनिमेशन:


 from alive_progress import alive_bar import time mylist = [1,2,3,4,5,6,7,8] with alive_bar(len(mylist)) as bar: for i in mylist: bar() time.sleep(1) 

परिणाम:



स्क्रिप्ट के लिए जीयूआई प्रगति सूचक


कभी-कभी अंतिम उपयोगकर्ता को ग्राफिक संकेतक प्रदान करना आवश्यक हो जाता है।



ऐसा परिणाम प्राप्त करने के लिए कितना कोड आवश्यक है? एक बिट:


 import PySimpleGUI as sg import time mylist = [1,2,3,4,5,6,7,8] for i, item in enumerate(mylist): sg.one_line_progress_meter('This is my progress meter!', i+1, len(mylist), '-key-') time.sleep(1) 

PySimpleGUI अनुप्रयोग में संकेतक


PySimpleGUI में संकेतक के कार्यान्वयन पर विचार करें।



यह कैसे करना है:


 import PySimpleGUI as sg import time mylist = [1,2,3,4,5,6,7,8] progressbar = [ [sg.ProgressBar(len(mylist), orientation='h', size=(51, 10), key='progressbar')] ] outputwin = [ [sg.Output(size=(78,20))] ] layout = [ [sg.Frame('Progress',layout= progressbar)], [sg.Frame('Output', layout = outputwin)], [sg.Submit('Start'),sg.Cancel()] ] window = sg.Window('Custom Progress Meter', layout) progress_bar = window['progressbar'] while True: event, values = window.read(timeout=10) if event == 'Cancel' or event is None: break elif event == 'Start': for i,item in enumerate(mylist): print(item) time.sleep(1) progress_bar.UpdateBar(i + 1) window.close() 

निष्कर्ष


जैसा कि आप देख सकते हैं, निष्पादन की प्रगति के बारे में जानकारी जोड़ने में कुछ भी जटिल नहीं है: थोड़ा कोड है, और जवाबदेही बहुत बढ़ जाती है। यदि प्रक्रिया लटक रही है या नहीं, तो फिर कभी अनुमान लगाने के लिए संकेतक का उपयोग करें!

Source: https://habr.com/ru/post/hi483400/


All Articles