zoukankan      html  css  js  c++  java
  • python 解析命令行选项

    问题:

    • 程序如何能够解析命令行选项

    解决方案

    • argparse 模块可被用来解析命令行选项

    argparse 模块

    argparse 模块是标准库中最大的模块之一,拥有大量的配置选项

    dest 参数指定解析结果被指派给属性的名字

    metavar 参数被用来生成帮助信息

    action 参数指定跟属性对应的处理逻辑, 通常的值为 store ,将其存储为字符串,action='append'  用来存储某个值或将多个参数值收集到一个列表中

     一旦参数选项被指定,你就可以执行 parser.parse() 方法了。 它会处理 sys.argv 的值并返回一个结果实例。 每个参数值会被设置成该实例中 add_argument() 方法的 dest 参数指定的属性值。

    nargs 作用: 把参数放到一个列表中

    import argparse
    parser = argparse.ArgumentParser(description='Search some files')
    
    parser.add_argument(dest='filenames',metavar='filename', nargs='*')
    args = parser.parse_args()
    print(args.filenames)
    

     

    执行脚本

    python test_nargs.py t.txt t1.txt t2.txt
    

     action='store_true' 根据参数是否存在来设置一个 Boolean 标志

    import argparse
    parser = argparse.ArgumentParser(description='Search some files')
    parser.add_argument('-v', dest='verbose', action='store_true',
                        help='verbose mode')
    args = parser.parse_args()
    print(args.verbose)

    执行脚本

    action='store'  接受一个单独值并将其存储为一个字符串

    import argparse
    parser = argparse.ArgumentParser(description='Search some files')
    parser.add_argument('-o', dest='outfile', action='store',
                        help='output file')
    args = parser.parse_args()
    print(args.outfile)
    

    执行脚本

    action='append'  把接受到的值追加到列表中  

    import argparse
    parser = argparse.ArgumentParser(description='Search some files')
    parser.add_argument('-o','--pat', dest='outfile', action='append',
                        help='output file')
    args = parser.parse_args()
    print(args.outfile)
    

    执行脚本  

    python test_nargs.py -o hello --pat hello1
    

    choices={'slow','fast'}, default='slow'  参数说明接受一个值,但是会将其和可能的选择值做比较,以检测其合法性

    import argparse
    parser = argparse.ArgumentParser(description='Search some files')
    parser.add_argument('--speed', dest='speed', action='store',
                        choices={'slow','fast'}, default='slow',
                        help='search speed')
    args = parser.parse_args()
    print(args.speed)  

    执行脚本 

     

     

     

  • 相关阅读:
    AX 2012 Security Framework
    The new concept 'Model' in AX 2012
    How to debug the SSRS report in AX 2012
    Using The 'Report Data Provider' As The Data Source For AX 2012 SSRS Report
    Deploy SSRS Report In AX 2012
    AX 2012 SSRS Report Data Source Type
    《Taurus Database: How to be Fast, Available, and Frugal in the Cloud》阅读笔记
    图分析理论 大纲小结
    一文快速了解Posix IO 缓冲
    #转载备忘# Linux程序调试工具
  • 原文地址:https://www.cnblogs.com/crazymagic/p/11328266.html
Copyright © 2011-2022 走看看