0

考慮:如何添加幫助的使用在Python腳本的getopt

import getopt 

    options, remainder = getopt.getopt(sys.argv[1:], 'd:a', ['directory=', 
                'algorithm', 
                'version=', 
                ]) 
    print 'OPTIONS :', options 

    for opt, arg in options: 
     if opt in ('-d', '--dir'): 
     directory_path = arg 
     elif opt in ('-a', '--alg'): 
     algorithm = arg 
     elif opt == '--version': 
     version = arg 

這個腳本工作正常,但如果用戶沒有指定任何參數(-d選項是必須的),我怎麼指定這使程序繼續而不會退出並顯示錯誤:因爲沒有指定文件路徑

如果用戶不知道哪些參數可用,我該如何顯示幫助或用法?

+1

等一下。你自己解析選項? –

回答

0

您可以定義一個新功能的幫助,並顯示它時,你想

def help(): 
    print(...) 

... 
for opt, arg in options: 
    if opt in ('-d', '--dir'): 
    directory_path = arg 
    else: 
    help() 
0

你可以按照以下實現自己的目標:

import sys 
import getopt 

def usage(): 
    print '<program.py> -i infile | -o outfile | -h help' 

def mymethod(argv): 
inputfile='' 
outputfile='' 
if(len(argv)<2): 
    usage() 
    sys.exit(2) 
try: 
    opts, args = getopt.getopt(argv, "i:o:h",["ifile=", "ofile=","help="]) 
except getopt.GetoptError: 
    usage() 
    sys.exit(2) 
for opt, arg in opts: 
    if opt == '-h': 
    usage() 
    sys.exit() 
    elif opt in ("-i", "--ifile"): 
    print 'input file name is ', arg 
    if opt in ("-o", "--ofile"): 
    print 'output file name is ', arg 
if __name__=='__main__': 
     mymethod(sys.argv[1:])