2011-11-15 3 views
12

अब मैं जो कर रहा हूं वह केवल तर्क की लंबाई की जांच करना है, यदि यह 0 है, तो उपयोगकर्ता को टाइप करने के लिए कहें।ऑप्टपर्सर-प्रिंट उपयोग सहायता जब कोई तर्क नहीं दिया जाता है

क्या ऐसा करने का कोई बेहतर तरीका है? धन्यवाद

उत्तर

4

यह आपके प्रश्न से स्पष्ट नहीं है कि आप optparse मॉड्यूल या इसके प्रतिस्थापन, argparse मॉड्यूल का उपयोग कर रहे हैं या नहीं। उत्तरार्द्ध को मानते हुए, तब तक जब तक आपके पास कम-से-कम एक स्थितित्मक तर्क हो, तब तक जब कोई तर्क (या अपर्याप्त तर्क) प्रदान नहीं किया जाता है तो आपकी स्क्रिप्ट एक उपयोग संदेश मुद्रित करेगी।

यहाँ एक उदाहरण स्क्रिप्ट है:

usage: script.py [-h] [--optional OPTIONAL] positional [positional ...] 
script.py: error: too few arguments 
+0

मैं optparse – thinkanotherone

+0

का उपयोग कर रहा हूं ऑप्टपर मॉड्यूल कमांड लाइन _options_ की अवधारणा के आसपास डिज़ाइन किया गया था और इसलिए आपको स्थितित्मक या आवश्यक तर्कों के साथ बहुत मदद नहीं मिलती है (divad12 के उत्तर में जुड़े दस्तावेज़ देखें - और मेरा खुद का)। स्थितित्मक तर्कों की जांच करने का उचित तरीका 'optparse.parseargs() 'द्वारा लौटाए गए तर्कों की जांच करना है जो कि आप पहले से ही कर रहे हैं। – srgerg

1

चेक बाहर http://docs.python.org/library/optparse.html

यह क्या उन सामान्य रूप से कमांड लाइन क्षुधा से उम्मीद करना चाहिए - जब -h झंडा दिया जाता है, यह उपयोग मदद दिखाएगा।

+0

मैं सिर्फ लोग हैं, जो कमांड लाइन उपकरण से परिचित नहीं हो सकता है के लिए एक सा और अधिक लचीला मेरी उपकरण बनाना चाहते हैं। – thinkanotherone

14

आप 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) 
4

संकेत के लिए @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() 
2

यहाँ कैसे मैंने पहले इस दृष्टिकोण से संभाला है है:

import optparse 
parser = optparse.OptionParser() 
... 
if len(sys.argv) == 1: # if only 1 argument, it's the script name 
    parser.print_help() 
    exit() 
संबंधित मुद्दे