কম্পিউটার

পাইথনে কমান্ড লাইন বিকল্পের জন্য সি-স্টাইল পার্সার


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-এ কমান্ড লাইন আর্গুমেন্টগুলিকে পার্স করার ফাংশন রয়েছে। এটি ইউনিক্স গেটোপ্ট() ফাংশন (‘-‘ এবং ‘--‘ ফর্মের আর্গুমেন্টের বিশেষ অর্থ সহ) একই নিয়মগুলিকে সমর্থন করে।

API কে C getopt() ফাংশনের ব্যবহারকারীদের সাথে পরিচিত হওয়ার জন্য ডিজাইন করা হয়েছে।

getopt(args, shortopts, longopts=[])

কমান্ড লাইন বিকল্প এবং পরামিতি তালিকা পার্স করে। args হল sys.argv[0] ব্যতীত আর্গুমেন্ট তালিকা, যা চলমান প্রোগ্রামের প্রধান রেফারেন্স। সাধারণত, এর মানে sys.argv[1:]। এই ফাংশনের আর্গুমেন্টগুলি নিম্নরূপ -

শর্টটপস: বিকল্প অক্ষরের স্ট্রিং যা স্ক্রিপ্ট দ্বারা স্বীকৃত হবে। যে বিকল্পগুলির জন্য একটি আর্গুমেন্টের প্রয়োজন হয় তার পরে একটি কোলন (':'; অর্থাৎ, একই বিন্যাস যা ইউনিক্স গেটোপ্ট() ব্যবহার করে।

লংগপ্টস: যদি নির্দিষ্ট করা থাকে, তাহলে অবশ্যই দীর্ঘ বিকল্পগুলির নাম সহ স্ট্রিংগুলির একটি তালিকা হতে হবে যা সমর্থন করা উচিত। নেতৃস্থানীয় '---' অক্ষর বিকল্প নামের অন্তর্ভুক্ত করা উচিত নয়. দীর্ঘ বিকল্পগুলির জন্য একটি আর্গুমেন্টের প্রয়োজন একটি সমান চিহ্ন ('=') দ্বারা অনুসরণ করা উচিত।

রিটার্ন মান দুটি উপাদান নিয়ে গঠিত:প্রথমটি (বিকল্প, মান) জোড়ার তালিকা; দ্বিতীয়টি হল প্রোগ্রাম আর্গুমেন্টের তালিকা যা অপশন লিস্ট ছিনিয়ে নেওয়ার পরে (এটি আর্গসের একটি ট্রেলিং স্লাইস)। প্রত্যাবর্তিত প্রতিটি বিকল্প-এবং-মান জোড়ার প্রথম উপাদান হিসাবে বিকল্প রয়েছে, সংক্ষিপ্ত বিকল্পগুলির জন্য একটি হাইফেন সহ উপসর্গযুক্ত (যেমন, '-x') বা দীর্ঘ বিকল্পগুলির জন্য দুটি হাইফেন (যেমন, '--দীর্ঘ-বিকল্প'), এবং বিকল্প আর্গুমেন্টকে তার দ্বিতীয় উপাদান হিসাবে, অথবা একটি খালি স্ট্রিং যদি বিকল্পটির কোনো যুক্তি না থাকে। বিকল্পগুলি তালিকায় একই ক্রমানুসারে দেখা যায় যেখানে সেগুলি পাওয়া গিয়েছিল, এইভাবে একাধিক ঘটনার অনুমতি দেয়। দীর্ঘ এবং সংক্ষিপ্ত বিকল্পগুলি মিশ্রিত হতে পারে৷

GettoptError উত্থাপিত হয় যখন আর্গুমেন্ট তালিকায় একটি অচেনা বিকল্প পাওয়া যায় বা যখন একটি আর্গুমেন্ট প্রয়োজন এমন একটি বিকল্প দেওয়া হয় না।

উদাহরণ

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. উইন্ডোজের জন্য মাইএসকিউএল কমান্ড লাইন ক্লায়েন্ট?

  2. পাইথন ম্যাটপ্লটলিবে একটি বাঁকা লাইনের জন্য একটি শিরোনাম কীভাবে রাখবেন?

  3. কমান্ড লাইনের মাধ্যমে পাইথন ম্যাটপ্লটলিবের সাথে ইন্টারেক্টিভ প্লটিং

  4. পাইথনে Tkinter বোতামের জন্য কমান্ড পদ্ধতি পরিবর্তন করুন