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

पायथन में कमांड लाइन विकल्पों के लिए सी-स्टाइल पार्सर

पायथन का sys मॉड्यूल sys.argv के माध्यम से किसी भी कमांड-लाइन तर्क तक पहुंच प्रदान करता है। sys.argv कमांड-लाइन तर्कों की सूची है और sys.argv[0] प्रोग्राम है यानी। स्क्रिप्ट का नाम।

निम्नलिखित कोड को args.py के रूप में सहेजें

import sys
print ('argument list', sys.argv)

कमांड लाइन से उपरोक्त स्क्रिप्ट को निम्नानुसार निष्पादित करें:

C:\python37>python args.py 11 22
argument list ['args.py', '11', '22']

getopt मॉड्यूल में sys.argv में कमांड लाइन तर्कों को पार करने के लिए फ़ंक्शन हैं। यह यूनिक्स getopt() फ़ंक्शन ('-' और '--' प्रपत्र के तर्कों के विशेष अर्थों सहित) के समान सम्मेलनों का समर्थन करता है।

API को C getopt () फ़ंक्शन के उपयोगकर्ताओं के लिए परिचित होने के लिए डिज़ाइन किया गया है।

getopt(args, shortopts, longopts=[])

पार्स कमांड लाइन विकल्प और पैरामीटर सूची। args sys.argv[0] को छोड़कर तर्क सूची है, जो चल रहे प्रोग्राम का प्रमुख संदर्भ है। सामान्यतया, इसका अर्थ है sys.argv[1:]। इस फ़ंक्शन के तर्क इस प्रकार हैं -

शॉर्टॉप्ट: विकल्प अक्षरों की स्ट्रिंग है जिसे स्क्रिप्ट द्वारा पहचाना जाएगा। जिन विकल्पों में तर्क की आवश्यकता होती है, उनके बाद एक कोलन (':'; यानी, यूनिक्स getopt() द्वारा उपयोग किया जाने वाला एक ही प्रारूप) होता है।

लॉन्गॉप्ट्स: यदि निर्दिष्ट किया गया है, तो लंबे विकल्पों के नाम के साथ स्ट्रिंग्स की एक सूची होनी चाहिए जो समर्थित होनी चाहिए। प्रमुख '--' वर्णों को विकल्प के नाम में शामिल नहीं किया जाना चाहिए। लंबे विकल्प जिनके लिए तर्क की आवश्यकता होती है, उनके बाद एक समान चिह्न ('=') होना चाहिए।

वापसी मूल्य में दो तत्व होते हैं:पहला (विकल्प, मूल्य) जोड़े की एक सूची है; दूसरा विकल्प सूची छीनने के बाद छोड़े गए प्रोग्राम तर्कों की सूची है (यह तर्कों का पिछला टुकड़ा है)। लौटाए गए प्रत्येक विकल्प-और-मूल्य युग्म में इसके पहले तत्व के रूप में विकल्प होता है, छोटे विकल्पों के लिए एक हाइफ़न (जैसे, '-x') या लंबे विकल्पों के लिए दो हाइफ़न (जैसे, '--long-option'), और विकल्प तर्क इसके दूसरे तत्व के रूप में, या एक खाली स्ट्रिंग यदि विकल्प में कोई तर्क नहीं है। सूची में विकल्प उसी क्रम में होते हैं जिसमें वे पाए गए थे, इस प्रकार कई घटनाओं की अनुमति देते हैं। लंबे और छोटे विकल्प मिश्रित हो सकते हैं।

GetoptError तब उठाया जाता है जब तर्क सूची में एक अपरिचित विकल्प पाया जाता है या जब तर्क की आवश्यकता वाले विकल्प को कोई नहीं दिया जाता है।

उदाहरण

import sys, getopt

args=sys.argv[1:]
inputfile = ''
outputfile = ''
try:
   opts, args = getopt.getopt(args,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
   print ('test.py -i <inputfile> -o <outputfile>')
   sys.exit(2)
for opt, arg in opts:
   if opt == '-h':
      print ('args.py -i <inputfile> -o <outputfile>')
      sys.exit()
   elif opt in ("-i", "--ifile"):
      inputfile = arg
   elif opt in ("-o", "--ofile"):
      outputfile = arg
print ('Input file is "', inputfile)
print ('Output file is "', outputfile)

आउटपुट

C:\python37>python args.py -h
args.py -i <inputfile> -o <outputfile>
C:\python37>python args.py -i abc.txt -o xyz.txt
Input file is " abc.txt
Output file is " xyz.txt
C:\python37>python args.py --ifile=abc.txt --ofile=xyz.txt
Input file is " abc.txt
Output file is " xyz.txt

  1. कैसे अजगर Matplotlib में एक घुमावदार रेखा के लिए एक शीर्षक डाल करने के लिए?

    Python Matplotlib में एक घुमावदार रेखा के लिए एक शीर्षक डालने के लिए, हम निम्नलिखित कदम उठा सकते हैं - कदम फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें। बनाएं x और y डेटा बिंदु जैसे कि रेखा एक वक्र होगी। x . को प्लॉट करें और y डेटा बिंदु। plt.title() . का उपयोग क

  1. कमांड लाइन के माध्यम से पायथन Matplotlib के साथ इंटरएक्टिव प्लॉटिंग

    इंटरेक्टिव प्लॉट प्राप्त करने के लिए, हमें आकृति को सक्रिय करने की आवश्यकता है। plt.ioff() . का उपयोग करना और plt.ion() , हम एक प्लॉट के साथ परस्पर क्रिया कर सकते हैं। आईपीथॉन खोलें खोल और खोल पर निम्न आदेश दर्ज करें। उदाहरण In [1]: %matplotlib auto Using matplotlib backend: GTK3Agg In [2]: import

  1. पायथन में टिंकर बटन के लिए कमांड विधि बदलें

    बटन विजेट का महत्व यह है कि इसका उपयोग घटनाओं को संभालने के लिए एप्लिकेशन में कुछ संचालन करने के लिए किया जाता है। ऐसी घटनाओं को संभालने के लिए, हम आम तौर पर एक विधि को परिभाषित करते हैं जिसमें कुछ निश्चित संचालन होते हैं। मान लें कि हम ईवेंट . को बदलना चाहते हैं बटन प्रारंभ करने के बाद विधि। हम क