2014-05-20 11 views
6

साथ ARG मैं निम्नलिखित कोड है:अजगर argparse: कोई झंडा

parser.add_argument('file', help='file to test') 
parser.add_argument('-revs', help='range of versions', nargs='+', default=False) 

वहाँ एक रास्ता है, जब यह उपयोग करते हैं, इस तरह झंडा -revs का उपयोग नहीं करने के लिए है:

./somescript.py settings.json 1 2 3 4 

उत्तर

10

हां।

आप कई समाधान है:

  • Mrav उल्लेख किया है, आप इस प्रणाली तर्क (sys.argv [0 ...])
  • या argparse का उपयोग कर सकते हैं। documentation से (जो python3 अनुरूप है), तो आप इस तरह से कर सकते हैं:

    if __name__ == '__main__': 
        parser = ArgumentParser() 
        parser.add_argument('file') 
        parser.add_argument('revs', metavar='N', type=int, nargs='+', help='revisions') 
        res = parser.parse_args() 
        pprint(res) 
    

और आप परिणाम देख सकते हैं:

$ ./test.py settings.json 1 2 3 
Namespace(file='settings.json', revs=[1, 2, 3]) 
संबंधित मुद्दे