क्लिक के साथ पायथन में अपनी खुद की कमांड लाइन प्रोग्राम कैसे बनाएं
विज्ञापन
कमांड लाइन इंटरफेस लिखने के लिए क्लिक एक पायथन पैकेज है। यह आपके लिए सुंदर दस्तावेज तैयार करता है और आपको कमांड लाइन इंटरफेस को कोड की एक लाइन के रूप में कम करने देता है। संक्षेप में: यह कमाल है और आपके कार्यक्रमों को अगले स्तर तक ले जाने में मदद कर सकता है।
यहां बताया गया है कि आप इसका उपयोग अपने पायथन प्रोजेक्ट्स को प्राप्त करने के लिए कैसे कर सकते हैं।
बिना क्लिक के कमांड लाइन प्रोग्राम लिखना
क्लिक का उपयोग किए बिना कमांड लाइन प्रोग्राम लिखना संभव है, लेकिन ऐसा करने के लिए अधिक प्रयास और बहुत अधिक कोड की आवश्यकता होती है। आपको कमांड लाइन तर्कों को पार्स करने, सत्यापन करने, विभिन्न तर्कों को संभालने के लिए तर्क विकसित करने और कस्टम सहायता मेनू बनाने की आवश्यकता है। एक नया विकल्प जोड़ना चाहते हैं? आप तब अपने सहायता कार्य को संशोधित करेंगे।
अपने स्वयं के कोड लिखने में कुछ भी गलत नहीं है, और ऐसा करना पायथन सीखने का एक शानदार तरीका है, लेकिन क्लिक करें आपको "खुद को दोहराएं नहीं" (DRY) सिद्धांतों का पालन करने की अनुमति देता है। क्लिक के बिना, आप कोड लिखेंगे जो नाजुक है और जब भी कोई बदलाव होता है तो बहुत सारे रखरखाव की आवश्यकता होती है।
यहाँ क्लिक के बिना एक साधारण कमांड लाइन इंटरफ़ेस कोडित है:
import sys import random def do_work(): """ Function to handle command line usage""" args = sys.argv args = args[1:] # First element of args is the file name if len(args) == 0: print('You have not passed any commands in!') else: for a in args: if a == '--help': print('Basic command line program') print('Options:') print(' --help -> show this basic help menu.') print(' --monty -> show a Monty Python quote.') print(' --veg -> show a random vegetable') elif a == '--monty': print('What\'s this, then? "Romanes eunt domus"? People called Romanes, they go, the house?') elif a == '--veg': print(random.choice(['Carrot', 'Potato', 'Turnip'])) else: print('Unrecognised argument.') if __name__ == '__main__': do_work()
पायथन की ये 27 लाइनें अच्छी तरह से काम करती हैं लेकिन बहुत नाजुक हैं। आपके द्वारा अपने कार्यक्रम में किए गए किसी भी परिवर्तन को बदलने के लिए बहुत से अन्य सहायक कोड की आवश्यकता होगी। यदि आप एक तर्क नाम बदलते हैं, तो आपको सहायता जानकारी को अपडेट करना होगा। यह कोड आसानी से नियंत्रण से बाहर हो सकता है।
यहाँ क्लिक के साथ एक ही तर्क है:
import click import random @click.command() @click.option('--monty', default=False, help='Show a Monty Python quote.') @click.option('--veg', default=False, help='Show a random vegetable.') def do_work(monty, veg): """ Basic Click example will follow your commands""" if monty: print('What\'s this, then? "Romanes eunt domus"? People called Romanes, they go, the house?') if veg: print(random.choice(['Carrot', 'Potato', 'Turnip'])) if __name__ == '__main__': do_work()
यह क्लिक उदाहरण कोड के 16 लाइनों में एक ही तर्क को लागू करता है। आपके लिए तर्कों को पार्स किया जाता है, और सहायता स्क्रीन उत्पन्न की जाती है:
यह बुनियादी तुलना दिखाती है कि क्लिक जैसे कार्यक्रमों का उपयोग करके आप कितना समय और प्रयास बचा सकते हैं। हालांकि कमांड लाइन इंटरफ़ेस अंतिम उपयोगकर्ता के लिए समान हो सकता है, अंतर्निहित कोड सरल है, और आप बहुत समय कोडिंग बचाएंगे। भविष्य में आपके द्वारा लिखे गए किसी भी परिवर्तन या अपडेट से विकास के महत्वपूर्ण समय में वृद्धि देखी जाएगी।
पायथन के लिए क्लिक के साथ शुरुआत करना
क्लिक का उपयोग करने से पहले, आप एक आभासी वातावरण को कॉन्फ़िगर करने की इच्छा कर सकते हैं जानें कि पायथन वर्चुअल वातावरण का उपयोग कैसे करें जानें कि कैसे पायथन वर्चुअल वातावरण का उपयोग करें कि क्या आप एक अनुभवी पायथन डेवलपर हैं, या आप अभी शुरू कर रहे हैं, एक आभासी वातावरण सेटअप करना सीखना किसी भी पायथन परियोजना के लिए आवश्यक है। अधिक पढ़ें । यह आपके सिस्टम या आपके द्वारा काम कर रहे अन्य प्रोजेक्ट्स के साथ आपके पायथन पैकेजों को विवादित होने से रोक देगा। आप भी अपने ब्राउज़र में अजगर की कोशिश कर सकते हैं, इन मुफ्त ऑनलाइन इंटरएक्टिव गोले के साथ अपने ब्राउज़र में अजगर की कोशिश करें इन मुफ्त ऑनलाइन इंटरएक्टिव गोले के साथ अपने ब्राउज़र में अजगर की कोशिश करें चाहे आप इन पायथन उदाहरणों से गुजर रहे हों या सरणियों और सूचियों की मूल बातें की समीक्षा कर रहे हों, आप कर सकते हैं अपने ब्राउज़र में कोड का सही परीक्षण करें। यहां सबसे अच्छे ऑनलाइन पायथन दुभाषिए हैं जो हमने पाए हैं। और पढ़ें अगर आप पाइथन और क्लिक के साथ खेलना चाहते हैं।
अंत में, सुनिश्चित करें कि आप पायथन संस्करण 3 चला रहे हैं। क्लिक टू पायथन संस्करण 2 का उपयोग करना संभव है, लेकिन ये उदाहरण पायथन 3 में हैं। पायथन 2 और पायथन 3 के बीच अंतर के बारे में और जानें।
तैयार होने के बाद, PIP का उपयोग करके कमांड लाइन से क्लिक करें (पायथन के लिए PIP कैसे स्थापित करें):
pip install click
आपका पहला क्लिक कार्यक्रम लेखन
पाठ संपादक में, क्लिक करके आयात शुरू करें:
import click
आयात करने के बाद, एक विधि और एक मुख्य प्रवेश बिंदु बनाएं। हमारे पायथन ओओपी गाइड ने इन्हें अधिक विस्तार से कवर किया है, लेकिन वे आपके कोड को स्टोर करने के लिए एक जगह प्रदान करते हैं, और पायथन के लिए इसे चलाना शुरू करने का एक तरीका:
import click import random def veg(): """ Basic method will return a random vegetable""" print(random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip'])) if __name__ == '__main__': veg()
यह बहुत ही सरल स्क्रिप्ट एक यादृच्छिक सब्जी का उत्पादन करेगी। आपका कोड अलग दिख सकता है, लेकिन यह सरल उदाहरण क्लिक के साथ संयोजन करने के लिए एकदम सही है।
इसे click_example.py के रूप में सहेजें, और फिर इसे कमांड लाइन में चलाएं (इसके स्थान पर नेविगेट करने के बाद):
python click_example.py
आपको एक यादृच्छिक सब्जी का नाम देखना चाहिए। क्लिक में जोड़कर चीजों को बेहतर बनाते हैं। क्लिक डेकोरेटर और लूप के लिए अपना कोड बदलें:
@click.command() @click.option('--total', default=3, help='Number of vegetables to output.') def veg(total): """ Basic method will return a random vegetable""" for number in range(total): print(random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip'])) if __name__ == '__main__': veg()
दौड़ने पर, आपको तीन बार प्रदर्शित एक यादृच्छिक सब्जी दिखाई देगी।
चलो इन परिवर्तनों को तोड़ दें। @ Click.command () डेकोरेटर डेकोरेटर के तुरंत बाद फ़ंक्शन के साथ काम करने के लिए क्लिक करता है। इस मामले में, यह शाकाहारी () फ़ंक्शन है। आपको उस प्रत्येक विधि की आवश्यकता होगी जिसे आप क्लिक के साथ उपयोग करना चाहते हैं।
@ Click.option डेकोरेटर कमांड लाइन से पैरामीटर स्वीकार करने के लिए क्लिक को कॉन्फ़िगर करता है, जिसे वह आपकी विधि से पास करेगा। यहां तीन तर्क दिए गए हैं:
- -टल: यह कुल तर्क के लिए कमांड लाइन नाम है।
- डिफ़ॉल्ट: यदि आप अपनी स्क्रिप्ट का उपयोग करते समय कुल तर्क निर्दिष्ट नहीं करते हैं, तो क्लिक डिफ़ॉल्ट से मान का उपयोग करेगा।
- मदद: अपने कार्यक्रम का उपयोग करने का तरीका बताने वाला एक छोटा वाक्य।
आइए देखते हैं क्लिक इन एक्शन। कमांड लाइन से, अपनी स्क्रिप्ट चलाएँ, लेकिन इस तरह कुल तर्क में पास करें:
python click_example.py --total 10
कमांड लाइन से –total 10 सेट करके, आपकी स्क्रिप्ट दस यादृच्छिक सब्जियां प्रिंट करेगी।
यदि आप -help फ़्लैग से गुजरते हैं, तो आपको एक अच्छा सहायता पृष्ठ दिखाई देगा, साथ ही आपके द्वारा उपयोग किए जा सकने वाले विकल्प
python click_example.py --help
अधिक कमांड जोड़ना
एक ही फ़ंक्शन पर कई क्लिक डेकोरेटर्स का उपयोग करना संभव है। Veg function में एक और क्लिक विकल्प जोड़ें:
@click.option('--gravy', default=False, help='Append "with gravy" to the vegetables.')
इस विधि में पारित करने के लिए मत भूलना:
def veg(total, gravy):
अब जब आप अपनी फ़ाइल चलाते हैं, तो आप ग्रेवी ध्वज में पास कर सकते हैं:
python click_example.py --gravy y
सहायता स्क्रीन भी बदल गई है:
यहाँ पूरे कोड (साफ-सुथरेपन के लिए कुछ मामूली रिफैक्टरिंग के साथ) हैं:
import click import random @click.command() @click.option('--gravy', default=False, help='Append "with gravy" to the vegetables.') @click.option('--total', default=3, help='Number of vegetables to output.') def veg(total, gravy): """ Basic method will return a random vegetable""" for number in range(total): choice = random.choice(['Carrot', 'Potato', 'Turnip', 'Parsnip']) if gravy: print(f'{choice} with gravy') else: print(choice) if __name__ == '__main__': veg()
और भी अधिक विकल्प क्लिक करें
एक बार जब आप मूल बातें जान लेते हैं, तो आप अधिक जटिल क्लिक विकल्पों पर गौर करना शुरू कर सकते हैं। इस उदाहरण में, आप सीखेंगे कि कैसे एक मान के लिए कई मानों को पास किया जाए, जिसे क्लिक करने पर एक ट्यूल में परिवर्तित हो जाएगा। आप पायथन शब्दकोश के लिए हमारे गाइड में tuples के बारे में अधिक जान सकते हैं।
एक नई फ़ाइल बनाएं जिसका नाम click_example_2.py है । यहां आपके लिए आवश्यक स्टार्टर कोड है:
import click import random @click.command() def add(): """ Basic method will add two numbers together.""" pass if __name__ == '__main__': add()
यहां कुछ नया नहीं है। पिछले अनुभाग में इस कोड के बारे में विस्तार से बताया गया है। @ Click.option नामक संख्याएँ जोड़ें:
@click.option('--numbers', nargs=2, type=int, help='Add two numbers together.')
यहाँ केवल नया कोड nargs = 2, और प्रकार = int विकल्प हैं। यह संख्या विकल्प के लिए दो मानों को स्वीकार करने के लिए क्लिक को बताता है, और उन्हें दोनों प्रकार के पूर्णांक होने चाहिए। आप इसे अपनी पसंद के किसी भी नंबर या (मान्य) डेटाटाइप में बदल सकते हैं।
अंत में, संख्या तर्क को स्वीकार करने के लिए ऐड मेथड को बदलें, और उनके साथ कुछ प्रोसेसिंग करें:
def add(numbers): """ Basic method will add two numbers together.""" result = numbers[0] + numbers[1] print(f'{numbers[0]} + {numbers[1]} = {result}')
आपके द्वारा पास किया गया प्रत्येक मान संख्या ऑब्जेक्ट के माध्यम से सुलभ है। कमांड लाइन में इसका उपयोग कैसे करें:
python click_example_2.py --numbers 1 2
अजगर उपयोगिता के लिए समाधान पर क्लिक करें
जैसा कि आपने देखा है, क्लिक करना आसान है लेकिन बहुत शक्तिशाली है। हालांकि इन उदाहरणों में केवल क्लिक की मूल बातें शामिल हैं, लेकिन बहुत सारी विशेषताएं हैं जिनके बारे में आप अभी जान सकते हैं कि आपके पास मूल बातों का एक ठोस उदाहरण है।
यदि आप अपने नए पाए गए कौशल का अभ्यास करने के लिए कुछ पायथन परियोजनाओं की तलाश कर रहे हैं, तो क्यों नहीं सीखें कि कैसे Arthino को Python के साथ नियंत्रित करें और Python के साथ एक Arduino को कैसे नियंत्रित करें कार्यक्रम और Python के साथ Arduino को कैसे नियंत्रित करें सीधे पायथन में एक Arduino प्रोग्राम करने के लिए, लेकिन आप इसे Python प्रोग्राम का उपयोग करके USB पर नियंत्रित कर सकते हैं। ऐसे। और पढ़ें, या कैसे पढ़े और कैसे लिखे और पाइथन के साथ Google शीट को पाइथन के साथ लिखें और कैसे पाइथन के साथ Google शीट को लिखें और पाइथन के साथ Google शीट को कैसे लिखें और लिखें यह अजीब और असामान्य लग सकता है, हालाँकि यह सीखना और उपयोग करना आसान है। इस लेख में, मैं आपको दिखाऊंगा कि पायथन का उपयोग करके Google शीट को कैसे पढ़ना और लिखना है। अधिक पढ़ें ? इनमें से किसी भी परियोजना को क्लिक में परिवर्तित करने के लिए एकदम सही होगा!
इसके बारे में और अधिक जानें: कोडिंग ट्यूटोरियल, पायथन।