解析python脚本的参数

时间:2016-03-16 08:43:59

标签: python

我想创建一个像这样的脚本

./myscript.py -g parser -a parserapp 

并且每当脚本缺少一个选项(例如./myscript.py -g parser)时,它将打印出使用情况并退出脚本

The script should be: ./myscript.py -g parser -a parserapp 

所以,我的问题是如何检查选项-a-g是否缺失;所以,它可以打印出脚本的用法并退出。

感谢您的帮助

4 个答案:

答案 0 :(得分:3)

使用argparse

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-g", "--gggg", help="g parameter",required=True)
parser.add_argument("-a", "--aaaa", help="a parameter",required=True)
args = parser.parse_args()
print args.g, args.a

当你用-h运行它时会显示帮助:

~#:python myscript.py -h
usage: myscript.py [-h] -g GGGG -a AAAA

optional arguments:
  -h, --help            show this help message and exit
  -g GGGG, --gggg GGGG  g parameter
  -a AAAA, --aaaa AAAA  a parameter

如果您错过参数,则会打印错误:

myscript.py: error: argument -g/--gggg is required

答案 1 :(得分:2)

对于你的需要,argparse可以检查参数是否缺失或不是这样:

 import argparse
 parser = argparse.ArgumentParser(description='My Super Script')
 parser.add_argument(
        '--parser', '-p',
        required=True,
        help='Parser Type'
        )
 parser.add_argument(
        '--application', '-a',
        required=True,
        help='Application Name'
        )
 args = parser.parse_args()

默认情况下,除非指定required=True,否则argparse会将命名参数视为可选参数 如果未提供两个参数,则会打印默认帮助 ref

答案 2 :(得分:1)

可以使用optparse或argparse来解析参数。你可以提供漂亮的帮助选项等等。也可以很容易地接受不同类型的参数。

使用argparse:https://docs.python.org/2/howto/argparse.html

答案 3 :(得分:1)

您可以使用argparse模块 对于Python3.x,您可以查看here 对于Python2.x,您可以查看here

argparse外,您还可以使用getopt模块 使用getopt
https://docs.python.org/3.1/library/getopt.html(Python3.x)
              https://docs.python.org/2/library/getopt.html(Python2.x)