Python学习-----命令行参数解析argparse库

一、argparse库介绍

1、argparse库是python自带库,不用特殊安装
2、argparse库是可以很好的解析命令行参数。即将python <文件名> -a -b --path等-a、-b、–path这些的命令行参数值解析并保存起来,以供程序使用。

二、关于命令行参数的一些说明

命令行参数分为必选参数和可选参数。

  • 必选参数:
    又名位置参数,即在参数值不需要跟在参数名后面,而是通过在命令行里的相对位置来决定其属于哪个参数,且该参数值不可缺少。
  • 可选参数
    顾名思义,在命令行里可有可无,这取决于实际情况。参数值需要跟在以-或者–开头的参数名之后,由空格分隔开来。

三、代码示例即部分参数详解

import sys
import argparse
from xmlrpc.client import boolean


def try_print(args):
    for name, value in vars(args).items():
        print(f"{name}: {value}")


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="测试命令行参数解析器")
    
    # 变量名前不加-或者--,表示该命令行参数为必须参数
    parser.add_argument("path")
    # 加上-或者--,表示该命令行参数为可选参数
    parser.add_argument("-p", "--port")
    # help:添加命令行参数备注,指定该命令行参数的说明信息。在执行-h或者--help时起作用
    parser.add_argument("-P", help="添加参数备注")
    # default:添加默认值。如果没有指定该命令行参数,则将默认值保存到变量里。
    parser.add_argument("--name", default="Kenny")
    # type:添加命令行参数值的类型校验,校验规则遵守类型转换,即1可通过int、str和boolean等校验规则,"1"可通过str、boolean等校验规则。
    parser.add_argument("--age", type=boolean)
    # choices:添加命令行参数值的备选值校验,即该命令行参数的参数值只能在choices里选择。区分大小写。
    # 不与default冲突,即default值可不在choices里,但一旦指定该命令行参数后,default设定失效,备选值按照choince的规则校验。
    parser.add_argument("--country", choices=["cn", "us"])
    # action:修改识别到命令行参数后的处理方式:
    #   store:直接保存命令行参数后的参数值到变量里。
    #   store_true:根据命令行参数值内容,将True或者False保存到变量里。
    #   store_const:与const参数共同使用,如果指定了该命令行参数,则将const的值保存到变量里。
    #   append:若命令行里多次出现该命令行参数且均指定了参数值,则将这些命令行参数值以列表的形式保存到变量里。
    parser.add_argument("--email", action="append")
    # const: 与action="store_const"参数一起使用。表示如果携带了该命令行参数,则将变量设定为const的值。
    parser.add_argument("--localhost", const="True", action="store_const")
    # nargs:允许命令行中该命令行参数后面跟多个命令行参数值,并以列表的形式将这些命令行参数值保存到变量里。
    #   N: 允许命令行参数值的绝对数量,不可多也不可少。
    #   *:允许任意个命令行参数值。
    #   +:允许至少一个命令行参数。
    #   ?:允许0个或1个命令行参数。
    parser.add_argument("--likes", nargs='*')
    # dest:默认解析器解析的命令行参数值保存在--或者-之后的变量里,使用dest参数后,可以将命令行参数值保存在指定的变量里。
    parser.add_argument("--append", dest="value")

    args = parser.parse_args()
    print(args, end="\n\n")
    try_print(args)

你可能感兴趣的:(常用操作,python学习整理,学习,python)