argparse模块的使用

发布时间 2023-09-18 00:05:57作者: 珠峰上吹泡泡

一、导入

import argparse

二、创建ArgumentParser对象

parser = argparse.ArgumentParser(description='Description of your script')

三、添加参数和选项

parser.add_argument()

# 1、第一个参数:是参数或者选项的名称,根据有无"--"分为位置参数和可选的命令行参数,其中位置参数在执行脚本时不可省略。
parser.add_argument('input_file')
parser.add_argument('--output')

# 2、参数或者选项的名称可以有别称,即在命令行中无论使用哪个均可
parser.add_argument('--output', '-o')

# 3、type--->用于指定命令行参数的数据类型,它允许你将用户输入的字符串转换为指定的数据类型,比如int, float,文件路径(argparse.FileType('r'))等,不指定则默认采用str类型。

# 4、default--->用于设置命令行参数的默认值,这在确保参数有合理默认值的情况下非常有用。

# 5、action--->控制参数或者选项的行为
"""
如果为'store_true'时,指定则为True,不指定则为False
如果为'store_const'时,常与const参数连用,指定时则使用const的内容,不指定时则使用default的内容
parser.add_argument('--verbose', '-v', action='store_const', const=True, default=False)
"""

# 6、nargs--->用于指定命令行参数应该接受多少个值
"""
None(默认值):表示参数只接受一个值。这是大多数参数的默认行为。
'?':表示参数可以接受零个或一个值。如果用户没有提供值,则将使用默认值。
'*':表示参数可以接受任意数量的值,包括零个值。
'+':表示参数可以接受一个或多个值,至少要有一个值。
"""

# 6、help--->用于提供参数或选项的帮助信息
parser.add_argument('input_file', help='Path to the input file')

四、解析命令行参数

运行脚本时,需指定位置参数

python your_script.py input.txt

通过parser.parse_known_args() 或者parser.parse_args()解析得到参数和选项,返回命名空间对象,后续可以通过属性访问参数和选项的值。

# parser.parse_known_args()和parser.parse_args()的区别在于如果遇到无法识别的选项或参数,前者不会产生错误(会用列表记录未知参数的信息),而后者会产生错误并显示帮助信息。
args = parser.parse_args()

print("Input file:", args.input_file)