Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में कमांड लाइन और परिवर्तनीय तर्क?

कमांड लाइन तर्क

कमांड लाइन तर्क इनपुट पैरामीटर हैं जो उपयोगकर्ता को एक निश्चित तरीके से कार्य करने के लिए प्रोग्राम को सक्षम करने की अनुमति देते हैं- अतिरिक्त जानकारी आउटपुट करने के लिए, या किसी निर्दिष्ट स्रोत से डेटा पढ़ने के लिए या वांछित प्रारूप में डेटा की व्याख्या करने के लिए।

पायथन कमांड लाइन तर्क

कमांड लाइन तर्कों को पढ़ने के लिए पायथन कई विकल्प प्रदान करता है। सबसे आम तरीके हैं -

  • पायथन sys.argv
  • पायथन गेटोप्ट मॉड्यूल
  • पायथन argparse मॉड्यूल

पायथन sys मॉड्यूल

sys मॉड्यूल कमांड लाइन तर्क (CLA) को एक सूची में संग्रहीत करता है और इसे पुनः प्राप्त करने के लिए, हम sys.argv का उपयोग करते हैं। यह कमांड लाइन तर्कों को स्ट्रिंग के रूप में पढ़ने का एक आसान तरीका है।

import sysprint(type(sys.argv))print('Command लाइन तर्क हैं:') for i in sys.argv:print(i)

एक प्रोग्राम के ऊपर चल रहा है, हमारा आउटपुट कुछ इस तरह होगा -

आउटपुट

>पायथन CommandLineOption.py एच ई एल एल ओ<वर्ग 'सूची'>कमांड लाइन तर्क हैं:CommandLineOption.pyHELLO

पायथन गेटोप्ट मॉड्यूल

पायथन गेटोप्ट मॉड्यूल sys.argv जैसे तर्क अनुक्रम को पार्स करता है और विकल्प और तर्क जोड़े का अनुक्रम और गैर-विकल्प तर्कों का अनुक्रम देता है।

सिंटैक्स

getopt.getopt(args, options, [long_options])

कहा पे:

  • आर्ग - तर्क सूची को पार्स किया जाना है

  • विकल्प - यह विकल्प अक्षरों की स्ट्रिंग है जिसे स्क्रिप्ट पहचानना चाहती है।

  • Long_options - यह एक वैकल्पिक पैरामीटर है, लंबे विकल्पों के नाम के साथ स्ट्रिंग्स की एक सूची है, जिसका समर्थन किया जाना चाहिए।

getopt मॉड्यूल विकल्प सिंटैक्स में शामिल हैं -

  • -a
  • -बवाल
  • -बी वैल
  • --noarg
  • --witharg=val
  • --witharg वैल

आइए एक उदाहरण के माध्यम से getopt मॉड्यूल को समझते हैं -

संक्षिप्त फ़ॉर्म विकल्प

प्रोग्राम के नीचे दो विकल्प हैं, -ए और -बी दूसरे विकल्प के साथ तर्क की आवश्यकता है।

getoptprint आयात करें (getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:'))

परिणाम

([('-a', ''), ('-b', 'val'), ('-c', 'val')], [])

लांग फॉर्म विकल्प

कार्यक्रम में दो विकल्प होते हैं, --noarg और –witharg और अनुक्रम ['noarg', 'witharg=']

होना चाहिए आयात करें witharg2=' ]))

परिणाम

([('--noarg', ''), ('--witharg', 'val'), ('--witharg2','another')], [])

जियोप्ट मॉड्यूल के उपयोग को प्रदर्शित करने के लिए एक और उदाहरण -

आयात करें ) getopt.GetoptError को छोड़कर:प्रिंट ('कुछ गलत है!') sys.exit(2)

परिणाम

>पायथन CommandLineOption.py -m 2 -h "हेल्प" एच ई एल एल ओ[('-m', '2'), ('-h', '')]['Help', 'H', 'E ', 'एल', 'एल', 'ओ']

पायथन argparse मॉड्यूल

कमांड लाइन तर्कों को पार्स करने के लिए पायथन argparse मॉड्यूल पसंदीदा तरीका है। यह मॉड्यूल कई विकल्प प्रदान करता है जैसे स्थितीय तर्क, तर्कों के लिए डिफ़ॉल्ट मान, सहायता संदेश, डेटा प्रकार का तर्क निर्दिष्ट करना आदि।

Argparse मॉड्यूल को समझने के लिए नीचे एक सरल प्रोग्राम है -

आयात करें जिस तरह से तर्क में हेरफेर किया जा सकता है।

आउटपुट

>पायथन CommandLineOption.py "हैलो, पायथन"हेलो, पायथन

हम -verbosity जैसे argparse मॉड्यूल के साथ वैकल्पिक तर्क सेट कर सकते हैं।


  1. पायथन का उपयोग करके कमांड लाइन से फ़ाइल कैसे पढ़ा जाए?

    पायथन का उपयोग करके फ़ाइल फॉर्म कमांड लाइन को पढ़ने के लिए, जिस स्क्रिप्ट का आप इसके लिए उपयोग करना चाहते हैं, उसे सीएलआई तर्क को स्वीकार करना होगा। उदाहरण के लिए, मान लें कि आप अजगर में एक कैट कमांड लिखना चाहते हैं (एक कमांड जो टर्मिनल पर सभी फाइल सामग्री को डंप करता है)। ऐसा करने के लिए, आप बस एक

  1. पायथन नेमस्पेस और एक वेरिएबल का दायरा समझाएं।

    नेमस्पेस दायरे को लागू करने का एक तरीका है। पायथन में, प्रत्येक पैकेज, मॉड्यूल, क्लास, फंक्शन और मेथड फंक्शन में एक नेमस्पेस होता है जिसमें वेरिएबल नाम हल किए जाते हैं। जब किसी फ़ंक्शन, मॉड्यूल या पैकेज का मूल्यांकन किया जाता है (अर्थात, निष्पादन शुरू होता है), एक नाम स्थान बनाया जाता है। इसे मूल्या

  1. एक्लिप्स कमांड लाइन में पायथन फ़ंक्शन कैसे चलाएं?

    हम PyDev का उपयोग कर सकते हैं, जो कि एक्लिप्स से पायथन प्रोग्राम चलाने के लिए एक प्लगइन है। एक बार इंस्टॉल हो जाने पर, हमारे पास सीधे या PyDev कंसोल/कमांड लाइन से एप्लिकेशन चलाने का विकल्प होगा।