• Python—Argparse


    Python—Argparse

    argparse 是 python 用于解析命令行参数和选项的标准模块,用于代替已经过时的optaparse模块。argparse模块的作用是用来解析命令行参数

    使用步骤

    首先导入该模块

    创建一个解析对象

    import argparse
    parser = argparse.ArgumentParser()
    

    在该对象中添加你需要的命令行参数,和选项

    parser.add_argument("--square",  type=int, help = "display a square of a given number")
    # parser.add_argument("-v", "--verbosity", type=int, choices=[0,1,2],  help="increase output verbosity")
    parser.add_argument("-v", "--verbosity", action="count", default = 0, help="increase output verbosity")
    

    每一个add_argument()对应一个你要关注的参数或选项;

    最后调用parse_args()方法进行解析

    args = parser.parse_args()
    

    举例1:

    默认情况下,有一个help的命令

    import argparse
    parser = argparse.ArgumentParser()
    parser.parse_args()
    

    输出结果:

    image-20211109162120019

    添加响应的指令行选项:

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("Haha", help = "echo the string you use here")
    args = parser.parse_args()
    print(args.Haha)
    

    结果如下,回显你写下的内容。

    image-20211109163830064

    举例2:

    计算平方,并且选择表现形式

    import argparse
    
    parser = argparse.ArgumentParser()
    
    
    parser.add_argument("--square",  type=int, help = "display a square of a given number")
    
    parser.add_argument("-v", "--verbosity", action="count", default = 0, help="increase output verbosity")
    
    args = parser.parse_args()
    ans = args.square**2
    
    if args.verbosity >= 2:
        print(f"the square of {args.square} equals {ans}")
    elif args.verbosity >= 1:
        print(f"{args.square}^2 == {ans}")
    else:
        print(ans)
    

    注意这个action,可选 count 判断参数个数,(注意,此处还使用了default,来保证若不输入值则默认为0)

    运行后得到结果为:

    image-20211109182619709

    action里还可以选用其他不同的属性值。

    也可以不用action,使用choices,例如choices=[0,1,2]

  • 相关阅读:
    函数part1 初始函数
    文件操作 文件修改的两种方式
    文件操作part3 文件内指针的移动
    文件操作part2
    day08作业
    文件操作part1
    字符编码
    ORA-15124 数据库启动阶段报错
    将数据库从普通文件系统迁移到ASM中
    在ASM中移动数据文件
  • 原文地址:https://www.cnblogs.com/jev-0987/p/15530487.html
Copyright © 2020-2023  润新知