আমি আমার প্রকল্পের সেটিংস সেটআপ তৈরি করতে পাইথন ব্যবহার করি তবে কমান্ড লাইনের যুক্তি পেতে আমার সহায়তা দরকার।
আমি টার্মিনালে চেষ্টা করেছি:
$python myfile.py var1 var2 var3
আমার পাইথন ফাইলটিতে আমি ইনপুটযুক্ত সমস্ত ভেরিয়েবল ব্যবহার করতে চাই।
আমি আমার প্রকল্পের সেটিংস সেটআপ তৈরি করতে পাইথন ব্যবহার করি তবে কমান্ড লাইনের যুক্তি পেতে আমার সহায়তা দরকার।
আমি টার্মিনালে চেষ্টা করেছি:
$python myfile.py var1 var2 var3
আমার পাইথন ফাইলটিতে আমি ইনপুটযুক্ত সমস্ত ভেরিয়েবল ব্যবহার করতে চাই।
উত্তর:
পাইথন টিউটোরিয়াল এটি ব্যাখ্যা করে :
import sys
print(sys.argv)
আরও সুনির্দিষ্টভাবে, আপনি যদি চালান python example.py one two three
:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']
import sys
sys.argv[1:]
আপনাকে আর্গুমেন্টের একটি তালিকা দেবে (পাইথন ফাইলের নাম সহ নয়)
[1:]
মানে?
[1:]
উপরের দিকে নিয়ে যান কারণ প্রথম যুক্তিটি sys.argv
উদাহরণস্বরূপ আপনি যে অজগর ফাইলটি চালাচ্ছেন তার নাম ডিফল্টরূপে testrun.py
।
argparse
পাইথন ২.7 এবং তারপরে যা আসে তা আমি উচ্চভাবে সুপারিশ করি ।
argparse
মডিউল, কারণ মডিউল (subcommands সহ) সব মান ব্যবহারের ক্ষেত্রে পরিচালনা বয়লার প্লেট কোড হ্রাস করে এবং আপনার কোড আরো জোরালো করে তোলে, তোমার জন্য সাহায্য ও ব্যবহার উত্পন্ন, চেক এবং ব্যবহারকারীর ইনপুট sanitize - সব যে জিনিস নিয়ে আপনি যখন আপনি সম্পর্কে চিন্তা করতে হবে ব্যবহার করছেনsys.argv
পদ্ধতির । এবং এটি নিখরচায় (অন্তর্নির্মিত)।
এখানে একটি ছোট উদাহরণ:
import argparse
parser = argparse.ArgumentParser("simple_example")
parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int)
args = parser.parse_args()
print(args.counter + 1)
এবং আউটপুট জন্য python prog.py -h
usage: simple_example [-h] counter
positional arguments:
counter counter will be increased by 1 and printed.
optional arguments:
-h, --help show this help message and exit
এবং python prog.py 1
যেমনটি আপনি প্রত্যাশা করবেন:
2
parser.add_argument('var3', nargs='?', type=int, default=3)
var3 একটি alচ্ছিক প্যারাম, যদি আপনি কমান্ড লাইনে কোনও মান নির্দিষ্ট না করেন তবে আপনি আপনার কোডে var3 এ অ্যাক্সেস করতে পারবেন, var3 এর জন্য ডিফল্ট মান = 3
পাইথন কোড:
import sys
# main
param_1= sys.argv[1]
param_2= sys.argv[2]
param_3= sys.argv[3]
print 'Params=', param_1, param_2, param_3
আবাহন:
$python myfile.py var1 var2 var3
আউটপুট:
Params= var1 var2 var3
কিছু অতিরিক্ত বিষয় যা আমি ভাবতে পারি।
যেমন_আলসাইড বলেছেন যে sys.argv উপাদানগুলির একটি তালিকা দেয় (প্রোগ্রামের নাম সহ), সুতরাং আপনি যদি কমান্ড লাইনের মধ্য দিয়ে যে উপাদানগুলির সংখ্যাটি জানতে চান আপনি এটি নির্ধারণ করতে লেন () ব্যবহার করতে পারেন। এর ভিত্তিতে, ব্যবহারকারী নির্দিষ্ট পরামিতিগুলি পাস না করে আপনি ব্যতিক্রম / ত্রুটি বার্তাগুলি ডিজাইন করতে পারেন।
এছাড়াও যদি আপনি কমান্ড লাইন আর্গুমেন্টগুলি পরিচালনা করার জন্য আরও ভাল উপায়ের সন্ধান করেন তবে আমি আপনাকে https://docs.python.org/2/howto/argparse.html দেখার পরামর্শ দিচ্ছি