अब मैं जो कर रहा हूं वह केवल तर्क की लंबाई की जांच करना है, यदि यह 0 है, तो उपयोगकर्ता को टाइप करने के लिए कहें।ऑप्टपर्सर-प्रिंट उपयोग सहायता जब कोई तर्क नहीं दिया जाता है
क्या ऐसा करने का कोई बेहतर तरीका है? धन्यवाद
अब मैं जो कर रहा हूं वह केवल तर्क की लंबाई की जांच करना है, यदि यह 0 है, तो उपयोगकर्ता को टाइप करने के लिए कहें।ऑप्टपर्सर-प्रिंट उपयोग सहायता जब कोई तर्क नहीं दिया जाता है
क्या ऐसा करने का कोई बेहतर तरीका है? धन्यवाद
यह आपके प्रश्न से स्पष्ट नहीं है कि आप optparse मॉड्यूल या इसके प्रतिस्थापन, argparse मॉड्यूल का उपयोग कर रहे हैं या नहीं। उत्तरार्द्ध को मानते हुए, तब तक जब तक आपके पास कम-से-कम एक स्थितित्मक तर्क हो, तब तक जब कोई तर्क (या अपर्याप्त तर्क) प्रदान नहीं किया जाता है तो आपकी स्क्रिप्ट एक उपयोग संदेश मुद्रित करेगी।
यहाँ एक उदाहरण स्क्रिप्ट है:
usage: script.py [-h] [--optional OPTIONAL] positional [positional ...]
script.py: error: too few arguments
चेक बाहर http://docs.python.org/library/optparse.html
यह क्या उन सामान्य रूप से कमांड लाइन क्षुधा से उम्मीद करना चाहिए - जब -h
झंडा दिया जाता है, यह उपयोग मदद दिखाएगा।
मैं सिर्फ लोग हैं, जो कमांड लाइन उपकरण से परिचित नहीं हो सकता है के लिए एक सा और अधिक लचीला मेरी उपकरण बनाना चाहते हैं। – thinkanotherone
आप optparse ठीक से यह कर सकते हैं:
import argparse
parser = argparse.ArgumentParser(description="A dummy program")
parser.add_argument('positional', nargs="+", help="A positional argument")
parser.add_argument('--optional', help="An optional argument")
args = parser.parse_args()
अगर मैं कोई तर्क के साथ इस चलाने के लिए, मैं इस परिणाम मिलता है। आपको Argparse का उपयोग करने की आवश्यकता नहीं है।
if options.foo is None: # where foo is obviously your required option
parser.print_help()
sys.exit(1)
संकेत के लिए @forkchop के लिए धन्यवाद parser.print_help() !!!
तो मुझे लगता है कि यह ऐसा हो सकता है?
import optparse
parser = optparse.OptionParser()
...
options, remainder = parser.parse_args()
if len(sys.argv[1:]) == 0:
print "no argument given!"
parser.print_help()
यहाँ कैसे मैंने पहले इस दृष्टिकोण से संभाला है है:
import optparse
parser = optparse.OptionParser()
...
if len(sys.argv) == 1: # if only 1 argument, it's the script name
parser.print_help()
exit()
मैं optparse – thinkanotherone
का उपयोग कर रहा हूं ऑप्टपर मॉड्यूल कमांड लाइन _options_ की अवधारणा के आसपास डिज़ाइन किया गया था और इसलिए आपको स्थितित्मक या आवश्यक तर्कों के साथ बहुत मदद नहीं मिलती है (divad12 के उत्तर में जुड़े दस्तावेज़ देखें - और मेरा खुद का)। स्थितित्मक तर्कों की जांच करने का उचित तरीका 'optparse.parseargs() 'द्वारा लौटाए गए तर्कों की जांच करना है जो कि आप पहले से ही कर रहे हैं। – srgerg