Python高阶——argparse(命令行与参数解析)

1.前言

本节,将讲解如何通过命令行传递参数。具体以代码形式讲解,保您一看就懂!

2.创建脚本

创建一个脚本命名为argparse_optional_argument.py,以便一会儿在terminal运行,注意,不能用Jupyter Notebook,它不能在terminal运行!!

3.导入解析模块

import argparse    #导入模块

4.初始化、添加参数、解析参数

  1. 在argparse模块中调用ArgumentParser()类并实例化。
  2. 给通过add_argument()函数给parser添加要解析的参数,里面的参数需要用户在运行脚本的时候传入,具体怎么传会在下面给出。
  3. 通过parser.parse_args()将所有用户传入的参数进行解析。
if __name__ == '__main__':
    
    #初始化parser
    parser = argparse.ArgumentParser(       
        description="my math script"
    )  #description为描述性内容,当运行脚本时第一行会显示my math script

    # 添加位置/可选参数
    parser.add_argument('-n','--num1', help="Number 1", type=float)  
    parser.add_argument('-i','--num2', help="Number 2", type=float)
    parser.add_argument('-o','--operation', help="provide operator", default='+')

    # 解析参数
    args = parser.parse_args()
    print(args)
    '''
    输出:Namespace(num1=None, num2=None, operation='+')
    '''
    result = None
    if args.operation == '+':
        result = args.num1 + args.num2
    if args.operation == '-':
        result = args.num1 - args.num2
    if args.operation == '*':
        result = args.num1 * args.num2
    if args.operation == 'pow':
        result = pow(args.num1, args.num2)

    print("Result : ", result)

4.运行脚本

import argparse    #导入模块

if __name__ == '__main__':
    
    #初始化parser
    parser = argparse.ArgumentParser(       
        description="my math script"
    )

    # 添加位置/可选参数
    parser.add_argument('num1', help="Number 1", type=float)  
    parser.add_argument('num2', help="Number 2", type=float)
    parser.add_argument('operation', help="provide operator", default='+')

    # 解析参数
    args = parser.parse_args()
    print(args)

terminal执行:

$ python argparse_optional_argument.py

输出的便是args的内容,此时我们还没有传入参数
在这里插入图片描述
传入参数

$ python argparse_optional_argument.py 30 50 +

在这里插入图片描述

5.通过脚本实现计算功能

import argparse    #导入模块

if __name__ == '__main__':
    
    #初始化parser
    parser = argparse.ArgumentParser(       
        description="my math script"
    )

    # 添加位置/可选参数

    parser.add_argument('-n','--num1', help="Number 1", type=float)  
    parser.add_argument('-i','--num2', help="Number 2", type=float)
    parser.add_argument('-o','--operation', help="provide operator", default='+')

    # 解析参数
    args = parser.parse_args()
    print(args)
    '''
    输出:Namespace(num1=None, num2=None, operation='+')
    '''
    result = None
    if args.operation == '+':
        result = args.num1 + args.num2
    if args.operation == '-':
        result = args.num1 - args.num2
    if args.operation == '*':
        result = args.num1 * args.num2
    if args.operation == 'pow':
        result = pow(args.num1, args.num2)

    print("Result : ", result)
$ python argparse_optional_argument.py --num1 30 --num2 50 --operation +

在这里插入图片描述【注意】如果不加“–”参数的位置就要严格按照添加的顺序,加了“–”,即两根横线下面写法也可以

$ python argparse_optional_argument.py --num1 30 --operation + --num2 50

还有一种缩写形式也可以,就是“-”,即一根横线

python argparse_optional_argument.py -n=84 -i=70 -o=+

输入-h将会显示所有可选参数

python argparse_optional_argument.py -h

在这里插入图片描述

发布了146 篇原创文章 · 获赞 427 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/104981441