मेरे पास एक पायथन स्क्रिप्ट कैसे है जो a) उपयोगकर्ता इनपुट को स्वीकार कर सकता है और मैं इसे कैसे बना सकता हूं) कमांड लाइन से चलाने पर तर्कों में पढ़ा जाता है?
argparse
इसके बजाय optparse
।
मेरे पास एक पायथन स्क्रिप्ट कैसे है जो a) उपयोगकर्ता इनपुट को स्वीकार कर सकता है और मैं इसे कैसे बना सकता हूं) कमांड लाइन से चलाने पर तर्कों में पढ़ा जाता है?
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)
कमांड लाइन विकल्प पार्स करने के लिए दो मॉड्यूल हैं: (पायथन 2.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'>
कंसोल / टर्मिनल से इनपुट के लिए 'raw_input' का उपयोग करें।
अगर आप बस एक कमांड लाइन तर्क चाहते हैं जैसे फ़ाइल नाम या कुछ और
$ python my_prog.py file_name.txt
तो आप sys.argv का उपयोग कर सकते हैं ...
import sys
print sys.argv
sys.argv एक सूची जहां 0, प्रोग्राम का नाम है ऊपर के उदाहरण sys.argv में तो है [1] "file_name.txt" होगा
यदि आप कमांड लाइन विकल्पों पर पूर्ण होना चाहते हैं तो ऑप्टपर्स मॉड्यूल का उपयोग करें।
PEV
यदि आप पायथन <2.7 चला रहे हैं, तो आपको ऑप्टपर्स की आवश्यकता है , जैसा कि डॉक्टर बताते हैं कि कमांड लाइन तर्क के लिए एक इंटरफ़ेस बनाएगा जिसे आपके आवेदन के चलने पर बुलाया जाता है।
हालांकि, पायथन .72.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.22.7, वहाँ अब है argparse आदेश पंक्ति तर्क के प्रसंस्करण के लिए।
अगर यह 3.x संस्करण है तो बस उपयोग करें:
variantname = input()
उदाहरण के लिए, आप 8 इनपुट करना चाहते हैं:
x = input()
8
x 8 के बराबर होगा, लेकिन अगर आप इसे अन्यथा परिभाषित करते हैं तो यह एक स्ट्रिंग होने जा रहा है।
तो आप कन्वर्ट कमांड का उपयोग कर सकते हैं, जैसे:
a = int(x) * 1.1343
print(round(a, 2)) # '9.07'
9.07
import six
if six.PY2:
input = raw_input
print(input("What's your name? "))