এই বিভাগে আমরা পাইথন ব্যবহার করে একটি কমান্ড লাইন ইন্টারফেস তৈরি করতে যাচ্ছি। কিন্তু আমরা প্রোগ্রামের গভীরে ডুব দেওয়ার আগে প্রথমে কমান্ড লাইনটি বুঝতে পারি।
কম্পিউটার প্রোগ্রামের অস্তিত্ব থেকে কমান্ড লাইন ব্যবহার করা হয় এবং কমান্ডের উপর নির্মিত। একটি কমান্ড লাইন প্রোগ্রাম হল একটি প্রোগ্রাম যা একটি শেল থেকে বা একটি কমান্ড লাইন থেকে চলে
যদিও কমান্ড লাইন ইন্টারফেস ইউজার ইন্টারফেস প্রদান করে যা মাউস ব্যবহার না করে টার্মিনাল, শেল বা কনসোলে কমান্ড টাইপ করে নেভিগেট করা হয়।
একটি কমান্ড-লাইন ইন্টারফেস (CLI) একটি এক্সিকিউটেবল দিয়ে শুরু হয়। এমন কিছু পরামিতি রয়েছে যা আমরা স্ক্রিপ্টে পাস করতে পারি সেগুলি কীভাবে বিকাশ করা হয় তার উপর নির্ভর করে, যেমন:
-
যুক্তি :আমাদের এই প্যারামিটারটি প্রদান করতে হবে যা স্ক্রিপ্টে পাস করা হয়। যদি আমরা এটি প্রদান না করি, CLI একটি ত্রুটির মাধ্যমে হবে। উদাহরণস্বরূপ, numpy হল এই কমান্ডের আর্গুমেন্ট:pip installnumpy।
-
বিকল্পগুলি৷ :একটি ঐচ্ছিক প্যারামিটার যা একটি নাম এবং একটি মান জোড়ার সাথে আসে যেমন:pip install django –cache-dir ./my-cache-dir যেখানে –cache_dir একটি বিকল্প প্যারাম এবং মান ./my-cache-dir হিসাবে ব্যবহার করা উচিত ক্যাশে ডিরেক্টরি।
-
পতাকা :আরেকটি ঐচ্ছিক প্যারামিটার যা স্ক্রিপ্টকে একটি নির্দিষ্ট আচরণকে সক্ষম বা নিষ্ক্রিয় করতে বলে, উদাহরণস্বরূপ –help প্যারামিটার৷
পাইথন কমান্ড লাইন ইন্টারফেস যেমন 'ক্লিক' লিখতে একাধিক পাইথন প্যাকেজ প্রদান করে। ক্লিক আমাদেরকে কোডের খুব কম লাইন দিয়ে কমান্ড লাইন ইন্টারফেস তৈরি করতে দেয়।
নীচে ক্লিক প্যাকেজ ব্যবহার না করে একটি কমান্ড লাইন ইন্টারফেস প্রোগ্রাম আছে. সিএলআই প্রোগ্রাম লেখা ততটা মার্জিত নাও হতে পারে যা আমরা 'ক্লিক' প্যাকেজ ব্যবহার করে পেয়েছি, কারণ 'ক্লিক' আপনাকে "নিজেকে পুনরাবৃত্তি করবেন না" (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('He’s not the Messiah—he’s a very naughty boy') elif a == '--veg': print(random.choice(['Tomato','Reddis','Carrot', 'Potato', 'Turnip'])) else: print('Unrecognised argument.') if __name__ == '__main__': do_work()
আউটপুট
c:\Python\Python361>python cli_interp1.py --monty He’s not the Messiah—he’s a very naughty boy c:\Python\Python361>python cli_interp1.py --help Basic command line program Options: --help -> show this basic help menu. --monty -> show a Monty Python quote. --veg -> show a random vegetable c:\Python\Python361>python cli_interp1.py --veg Tomato c:\Python\Python361>python cli_interp1.py --error Unrecognised argument.
আপনি উপরের প্রোগ্রামে দেখতে পাচ্ছেন, এটি একটি আর্গুমেন্টের নাম পরিবর্তন করার জন্য খুব বেশি নমনীয়তা প্রদান করে না।
নীচে সিএলআই বাস্তবায়নের জন্য পাইথন ক্লিক প্যাকেজ ব্যবহার করে একই প্রোগ্রাম রয়েছে।
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('He’s not the Messiah—he’s a very naughty boy') if veg: print(random.choice(['Tomato','Reddis','Carrot', 'Potato', 'Turnip'])) if __name__ == '__main__': do_work()
আউটপুট
c:\Python\Python361>python cli_interp2.py --help Usage: cli_interp2.py [OPTIONS] Basic Click example will follow your commands Options: --monty TEXT Show a Monty Python quote. --veg TEXT Show a random vegetable. --help Show this message and exit.
উপরের প্রোগ্রামটি দেখায়, 'ক্লিক' প্যাকেজ ব্যবহার করে CLI লেখা এবং প্রোগ্রামারদের অনেক প্রচেষ্টা বাঁচানো অনেক সহজ।