Appearance
python argparse
python的argparse可以把脚本后面的参数有效的组织起来,比sys.argv更灵活
arguments
python
import argparse
parser = argparse.ArgumentParser(description='test argparse')
parser.add_argument('--start_time', type=str, required=True)
parser.add_argument('--end_time', type=str)
parser.add_argument('--perpage', type=int, default=20)
parser.print_help()
这段代码使用了 Python 的 argparse 模块来解析命令行参数。让我们逐行分析这段代码:
python
import argparse
首先,导入了 argparse 模块,这是 Python 内置的用于解析命令行参数的库。
python
parser = argparse.ArgumentParser(description='test argparse')
创建了一个 ArgumentParser 对象,命名为 parser。ArgumentParser 对象用于定义和解析命令行参数。在这里,description 参数是一个可选的描述性字符串,用于解释脚本的目的。
python
parser.add_argument('--start_time', type=str, required=True)
parser.add_argument('--end_time', type=str)
parser.add_argument('--perpage', type=int, default=20)
使用 add_argument() 方法向 parser 对象添加命令行参数的定义。这里定义了三个参数:--start_time、--end_time 和 --perpage。
- --start_time 是一个字符串类型的参数,并且使用 required=True 表示它是必需的,必须提供值。
- --end_time 也是一个字符串类型的参数,但它没有设置 required=True,因此它是可选的。
- --perpage 是一个整数类型的参数,并且使用 default=20 表示如果未提供值,将使用默认值 20。
python
parser.print_help()
调用 print_help() 方法将打印帮助信息,其中包含了命令行参数的使用说明。这个方法可以用来展示命令行参数的帮助信息给用户。
通过运行这段代码,如果在命令行中输入 python script.py --help,将会打印出命令行参数的使用说明。
parse arguments
argparse有两个方法可以解析给定的参数
- parse_args
python
arg = parser.parse_args()
arg是一个 argparse.Namespace 对象,可以直接getattr或者点来获取数据,当给定的参数不属于add_argument会抛出错误, 推荐使用这种方式.
error: unrecognized arguments: --test abc
- parse_know_args
python
arg, unkonw = parser.parse_know_args()
parse_know_args当给出错误的参数 --test=abc后,不会抛出错误, 有很强的容错性, 请根据业务来合理使用这些方法
其余字段
python
parser.add_argument('--start_time', metavar='', type=str, required=True, help="start time")
- metavar
通过metavar可以控制帮助信息的显示, 如果不设置为空,则会出现下面的情况
options:
--start_time START_TIME
start time
- help
help 用来增加说明文字,比如上面的start time