在 Python 中,
argparse
是一个用于构建命令行接口的模块。它允许你定义命令行参数,这些参数可以被用户在运行脚本时指定。
1.创建解析器对象
- argparse.ArgumentParser()
- 使用
parser
解析器来定义和解析命令行参数
import argparse
# 创建解析器
parser = argparse.ArgumentParser()
2.添加参数
- parser.add_argument()
- 可以添加位置参数或可选参数
# 添加 "-encoder" 参数
# 默认值为 'classifier',类型为字符串,且只能从给定的选项中选择
parser.add_argument("-encoder", default='classifier', type=str, choices=['classifier','transformer','rnn','baseline'])
# 添加 "-mode" 参数
# 默认值为 'train',类型为字符串,且只能从给定的选项中选择
parser.add_argument("-mode", default='train', type=str, choices=['train','validate','test'])
- 使用
add_argument
方法来添加两个可选参数-encoder
和-mode
。 default
参数设置了当用户没有在命令行中指定该选项时的默认值。type
参数指定了命令行参数应该被解析为什么类型。在这个例子中,两个参数都被指定为字符串str
。choices
参数限制了用户可以为参数提供的值。对于-encoder
,用户只能选择 'classifier', 'transformer', 'rnn', 'baseline' 中的一个;对于-mode
,用户只能选择 'train', 'validate', 'test' 中的一个。- 脚本script.py的调用:
python script.py -encoder transformer -mode test
# -encoder 参数被设置为 transformer,而 -mode 参数被设置为 test
3.解析命令行参数
- 调用解析器的parse_args()方法,创建args对象来接收命令行参数
args = parser.parse_args()
4.使用参数
# 使用参数
print(f"使用 {args.encoder} 作为编码器。")
print(f"运行模式为 {args.mode}。")