Python getopt/optparse optional command line parameter handling
本问题已经有最佳答案,请猛点这里访问。
我用python完成了一个脚本的编写,现在还停留在界面上,这需要从用户那里获得一些选项,但不确定获得可选参数的最佳方法是什么。代码如下…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | def getOptions(argv): try: opts,args = getopt.getopt(argv,"hi:c:d:m", ["ifile=","add=","delete"]) except getopt.GetoptError: printUsage() sys.exit(2) for opt, arg in opts: if opt in ("-h","--help"): print ("test -m <make> [src] [dst] ") print ("test -i <install>[filename] ") ..... sys.exit() if opt in ("-m","--make"): make(arg) sys.exit() if opt in ("-i","--install"): install(arg) sys.exit() ... # few more options else: assert False,"unhandled option" |
我的问题是,我怎样才能省去参数(比如使用arg的默认可选路径),如果没有提供,从用户那里获取??目前我必须提供/测试-I我怎样才能省去文件名,像这样打电话呢/测试-I我又一次陷入同样的问题,我的开发环境是python 2.6,由于这些限制,现在使用optparse,但是有同样的问题,我必须支持一个可选参数,除了手动解析sys.argv之外,我找不到其他方法,我有几乎10个不同的选项,如果我能处理一个可选参数,我的scri对终端用户来说,PT会更方便。
来自:http:/ / / 2 /图书馆/ getopt.html docs.python.orggetopts不支持可选参数。
你可以在代码中使用argparse写作?以下是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import argparse parser = argparse.ArgumentParser(description='python cli') parser.add_argument("-m","--make", help="execute make", required=True) parser.add_argument("-i","--install", help="execute install", required=True) # parse input arguments args = parser.parse_args() makeVal = args.make shouldInstall = args.install if makeVal : make(makeVal) ... |
参考:http:/ / / /图书馆/ argparse.html docs.python.org 2.7