zoukankan      html  css  js  c++  java
  • 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]

  • 相关阅读:
    js事件之event.preventDefault()与event.stopPropagation()用法区别
    [转] The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing
    [转] Visual Studio Code behind a proxy
    [转] js == 与 === 的区别
    [转]说说C#的async和await
    [转]Sublime Text3注册码(可用)
    Oracle 12c
    SQL Server死锁
    Initialize the Storage Emulator by Using the Command-Line Tool
    Microsoft Fakes
  • 原文地址:https://www.cnblogs.com/jev-0987/p/15530487.html
Copyright © 2011-2022 走看看