আমার কীভাবে পাইথন স্ক্রিপ্ট রয়েছে যা ক) ব্যবহারকারী ইনপুট গ্রহণ করতে পারে এবং আমি কীভাবে এটি তৈরি করব খ) কমান্ড লাইন থেকে চালিত হলে আর্গুমেন্টে পড়তে পারি?
argparse
পরিবর্তে optparse
।
আমার কীভাবে পাইথন স্ক্রিপ্ট রয়েছে যা ক) ব্যবহারকারী ইনপুট গ্রহণ করতে পারে এবং আমি কীভাবে এটি তৈরি করব খ) কমান্ড লাইন থেকে চালিত হলে আর্গুমেন্টে পড়তে পারি?
argparse
পরিবর্তে optparse
।
উত্তর:
ব্যবহারকারীর ইনপুট পড়তে আপনি চেষ্টা করতে পারেন মডিউল সহজে একটি ক্ষুদ্র-কমান্ড লাইন ব্যাখ্যাকারী (সাহায্য গ্রন্থে এবং স্বয়ংক্রিয়ভাবে সঙ্গে) তৈরি এবং জন্য ( ব্যবহারকারীর কাছ থেকে লেখার একটা লাইন পড়ার জন্য পাইথন 3+ জন্য)।cmd
raw_input
input
text = raw_input("prompt") # Python 2
text = input("prompt") # Python 3
কমান্ড লাইনের ইনপুট রয়েছে sys.argv
। আপনার স্ক্রিপ্ট এ চেষ্টা করুন:
import sys
print (sys.argv)
কমান্ড লাইন বিকল্পগুলি পার্স করার জন্য দুটি মডিউল রয়েছে: (পাইথন ২.7 থেকে অবচয়, optparse
argparse
পরিবর্তে ব্যবহার করুন) এবং getopt
। আপনি যদি কেবল নিজের স্ক্রিপ্টে ফাইলগুলি ইনপুট করতে চান তবে এর শক্তিটি দেখুন fileinput
।
পাইথন গ্রন্থাগার রেফারেন্স আপনার বন্ধু।
var = raw_input("Please enter something: ")
print "you entered", var
বা পাইথন 3 এর জন্য:
var = input("Please enter something: ")
print("You entered: " + var)
raw_input
, এটি একটি বিল্টিন ফাংশন।
raw_input
পাইথন 3.x এ আর উপলব্ধ নেই। তবে raw_input
নামকরণ করা হয়েছিল input
, সুতরাং একই কার্যকারিতা বিদ্যমান।
input_var = input("Enter something: ")
print ("you entered " + input_var)
import fileinput result=[] for line in fileinput.input(): result.append(line)
কমান্ড লাইন আর্গুমেন্ট প্রক্রিয়া করার সর্বোত্তম উপায় হল argparse
মডিউল।
ব্যবহার করুন raw_input()
ব্যবহারকারীর ইনপুট জন্য। আপনি যদি আমদানি করেন তবে readline module
আপনার ব্যবহারকারীদের লাইন সম্পাদনা এবং ইতিহাস থাকবে।
এই সাধারণ প্রোগ্রামটি আপনাকে কীভাবে কমান্ড লাইন থেকে ব্যবহারকারী ইনপুট খাওয়ানো এবং অবৈধ যুক্তি পাস করার ক্ষেত্রে সহায়তা প্রদর্শন করতে সহায়তা করে।
import argparse
import sys
try:
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args = parser.parse_args()
#print the square of user input from cmd line.
print args.square**2
#print all the sys argument passed from cmd line including the program name.
print sys.argv
#print the second argument passed from cmd line; Note it starts from ZERO
print sys.argv[1]
except:
e = sys.exc_info()[0]
print e
1) 5 এর বর্গমূল খুঁজতে
C:\Users\Desktop>python -i emp.py 5
25
['emp.py', '5']
5
2) সংখ্যা ব্যতীত অবৈধ যুক্তি পাস করা
C:\Users\bgh37516\Desktop>python -i emp.py five
usage: emp.py [-h] square
emp.py: error: argument square: invalid int value: 'five'
<type 'exceptions.SystemExit'>
কনসোল / টার্মিনাল থেকে ইনপুট দেওয়ার জন্য 'কাঁচা-ইনপুট' ব্যবহার করুন।
যদি আপনি কেবল কোনও ফাইলের নাম বা যেমন যেমন কোনও কমান্ড লাইন আর্গুমেন্ট চান
$ python my_prog.py file_name.txt
তারপরে আপনি sys.argv ব্যবহার করতে পারেন ...
import sys
print sys.argv
sys.argv হল একটি তালিকা যেখানে 0 প্রোগ্রামটির নাম, সুতরাং উপরের উদাহরণে sys.argv [1] হবে "file_name.txt"
আপনি যদি কম অন লাইন অপশন পূর্ণ করতে চান তবে অপ্ট পার্সী মডিউলটি ব্যবহার করুন।
Pev
আপনি যদি পাইথন <২. running চালাচ্ছেন, আপনার অপ্ট পার্স প্রয়োজন , যা ডক ব্যাখ্যা করেছেন যে কমান্ড লাইন আর্গুমেন্টগুলিতে একটি ইন্টারফেস তৈরি করবে যা আপনার অ্যাপ্লিকেশনটি চালিত হওয়ার সময় ডাকা হবে।
যাইহোক, পাইথন in2.7-এ, অপ্টপার্সিকে হ্রাস করা হয়েছে, এবং উপরের চিত্রের মতো আরগপার্সে প্রতিস্থাপন করা হয়েছে। ডক্স থেকে একটি দ্রুত উদাহরণ ...
নিম্নলিখিত কোডটি একটি পাইথন প্রোগ্রাম যা পূর্ণসংখ্যার একটি তালিকা নেয় এবং যোগফল বা সর্বোচ্চ উত্পাদন করে:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print args.accumulate(args.integers)
পাইথন হিসাবে 3.2২.7, কমান্ড লাইন আর্গুমেন্টগুলি প্রক্রিয়াকরণের জন্য এখন আরগপারস রয়েছে ।
যদি এটি কোনও 3.x সংস্করণ থাকে তবে কেবল সহজভাবে ব্যবহার করুন:
variantname = input()
উদাহরণস্বরূপ, আপনি 8 ইনপুট করতে চান:
x = input()
8
x 8 টি সমান হবে তবে এটি একটি স্ট্রিং হতে চলেছে যদি আপনি অন্যথায় এটি সংজ্ঞায়িত করেন তবে।
সুতরাং আপনি রূপান্তর কমান্ড ব্যবহার করতে পারেন, যেমন:
a = int(x) * 1.1343
print(round(a, 2)) # '9.07'
9.07