argparse
ডকুমেন্টেশন যুক্তিসঙ্গতভাবে ভাল কিন্তু আউট কয়েক দরকারী বিবরণ পাতা যা সুস্পষ্ট নাও হতে পারে। (@ ডিগো নাভারো ইতিমধ্যে এর কয়েকটি উল্লেখ করেছেন তবে আমি তার উত্তরে কিছুটা প্রসারিত করার চেষ্টা করব।) বুনিয়াদি ব্যবহার নিম্নরূপ:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
আপনি যে জিনিসটি থেকে ফিরে আসবেন parse_args()
তা হ'ল 'নেমস্পেস' অবজেক্ট: এমন একটি অবজেক্ট যার সদস্য ভেরিয়েবলগুলি আপনার কমান্ড-লাইন আর্গুমেন্টের নামে নামকরণ করা হবে। Namespace
বস্তু কিভাবে আপনি আপনার আর্গুমেন্ট এবং তাদের সঙ্গে যুক্ত মান অ্যাক্সেস হল:
args = parser.parse_args()
print args.my_foo
print args.bar_value
(নোট করুন যে argparse
ভেরিয়েবলের নামকরণের সময় আপনার যুক্তির নামগুলিতে '-' এর পরিবর্তে আন্ডারস্কোর দিয়ে প্রতিস্থাপন করে))
অনেক পরিস্থিতিতে আপনি যুক্তিগুলি কেবল পতাকা হিসাবে ব্যবহার করতে চাইতে পারেন যা কোনও মূল্য দেয় না। আপনি এইগুলিতে আরগপার্সে যুক্ত করতে পারেন:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
উপরেরটি যথাযথ মান সহ 'foo' এবং যথাক্রমে ফলস মান সহ 'no_foo' নামের ভেরিয়েবলগুলি তৈরি করবে:
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
একটি আর্গুমেন্ট যোগ করার সময় আপনি "প্রয়োজনীয়" বিকল্পটি ব্যবহার করতে পারেন তাও নোট করুন:
parser.add_argument('-o', '--output', required=True)
আপনি যদি কমান্ড লাইনে এই যুক্তিটি বাদ দেন তবে argparse
আপনাকে বলবে যে এটি অনুপস্থিত এবং আপনার স্ক্রিপ্টটির সম্পাদন বন্ধ করবে।
পরিশেষে, নোট করুন যে vars
ফাংশনটি ব্যবহার করে আপনার যুক্তিগুলির একটি ডিক কাঠামো তৈরি করা সম্ভব , যদি এটি আপনার জন্য জীবন সহজ করে।
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
আপনি দেখতে পাচ্ছেন, vars
আপনার যুক্তির নামগুলি কী হিসাবে এবং এর মানগুলি, এর, মান হিসাবে একটি ডিক প্রদান করে।
আপনি করতে পারেন এমন প্রচুর অপশন এবং জিনিস রয়েছে তবে এটিতে সর্বাধিক প্রয়োজনীয়, সাধারণ ব্যবহারের দৃশ্যগুলি আবরণ করা উচিত।
sys.argv
আপনি যে যুক্তিটি চান তা