2011-02-17 23 views

回答

3

看一看的argparse模塊(其中做了很多顯示更多在這裏):

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) 
+2

併爲較早版本的Python選擇optparse。 – 2011-02-17 04:31:38

1

您可以使用len()得到一個序列的長度如sys.argv

0

你可以定義一個包裝函數。

0

根據你的命令行參數的複雜性和你的Python版本使用,你可以嘗試argparse模塊(Python 2.7中可用)。

說明在Python文檔:

的argparse模塊可以很容易地編寫用戶友好的命令行界面。該程序定義了它需要的參數,argparse將找出如何解析sys.argv中的那些參數。 argparse模塊還會自動生成幫助和用法消息,並在用戶給出程序無效參數時發出錯誤。

1

我使用plac庫 - 這對我來說是最簡單的方法。你只需要定義一個函數的一些參數:

import plac 

def main(arg1, arg2, arg3=None, arg4='default value'): 
    print locals() 

if __name__ == '__main__': 
    plac.call(main) 

而磨片,你打電話給你的腳本是這樣的:

$ python my_console_program.py 111 222 

你得到命令行參數作爲函數的參數:

{'arg1': '111', 'arg2': '222', 'arg3': None, 'arg4': 'default value'} 

您可以輕鬆處理默認和必需的參數,選項等。

相關問題