如何在Python中读取/处理命令行参数?

读取或处理命令行参数的官方方法是使用ArgumentParser模块中的argparse。

argparse模块启用了实现用户友好的命令行界面。该程序定义了所需的参数,而argparse将确定如何从sys.argv中解析这些参数?当用户为程序提供无效参数时,argparse还会生成帮助和用法消息并发出错误。

示例

import argparse

parser = argparse.ArgumentParser(description='Process the numbers')
parser.add_argument('integers',metavar='N', type=int, nargs='+', help='an integer for addition')
parser.add_argument('--sum',dest='addition', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.addition(args.integers))

假设,我们已将上述方法保存为文件“ argparse_example.py”,可以在命令行中运行并提供有用的消息。

情况1:在不传递参数的情况下运行方法

    python argparse_example.py 
    usage: argparse_example.py [-h] [--sum] N [N ...]
    argparse_example.py: error: the following arguments are required: N

情况2:运行通过-h作为参数的方法

    python argparse_example.py -h
    usage: argparse_example.py [-h] [--sum] N [N ...]

    Process the numbers

    positional arguments:
      N           an integer for addition

    optional arguments:
      -h, --help  show this help message and exit
      --sum       sum the integers (default: find the max)

情况3:运行传递数字的方法(返回数字列表的最大值)

    python argparse_example.py 1 2 3 4
    4

情况4:运行传递–sum参数作为参数以及数字列表的方法

    python argparse_example.py 1 2 3 4 --sum
    10