2013-02-25 59 views
2

我正在尋找一種有效的方式來編寫可以使用連字符單字母空間參數約定調用的python腳本(例如python script.py -f /filename -t type -n 27,其中f,tn是與選項類型對應的單個字母,/filename,type27是它們的值)。我知道sys函數庫和它的sys.argv函數是在調用之後抓取空格分隔的字符串的函數(請參見call program with arguments),但是當它們遵循上述慣例時,是否有複雜的方式來處理這些字符串?如何使用選項運行python腳本

+2

您需要python標準庫中的['argparse'模塊](http://docs.python.org/2/library/argparse.html#module-argparse)。 – 2013-02-25 05:17:27

+1

http://docs.python.org/2/howto/argparse.html或者對於2.7以前的版本,你可以使用http://docs.python.org/release/2.6/library/optparse.html – sberry 2013-02-25 05:18:05

+0

@JoelCornett你應該張貼作爲答案,而不是評論。 :) – Amber 2013-02-25 05:18:59

回答

3

您想在Python標準庫中使用argparse module

的argparse模塊包含一個ArgumentParser類,你可以用它來解析由sys.argv

用法示例提供的參數:

import argparse 
import sys 

parser = argparse.ArgumentParser(description="Does some awesome things.") 
parser.add_argument('message', type=str, help="pass a message into the script") 

if __name__ == '__main__': 
    args = parser.parse_args(sys.argv[1:]) 
    print args.message 

有關詳細信息,比如如何通過可選的,默認情況下,和多個參數,see the documentation

+0

謝謝,@Joel。仍然令人費解,但實際上它看起來像我需要的那個。 – nahanarts 2013-02-26 14:34:53