Python argparse库 add_argument常用参数

name or flags (参数名或参数标志):

标识命令行中参数的方式。对于位置参数,这是必需的;对于可选参数,可以是一个或多个选项字符串(如 '-a', '--all')。

add_argument 方法可以只提供此项,后面的参数都是可选可不选的

python 复制代码
import argparse  
  
def create_parser():  
    # 创建 ArgumentParser 对象  
    parser = argparse.ArgumentParser(description='这是一个简化的命令行参数示例。')  
    # 添加一个必需的位置参数  
    parser.add_argument('message', help='用户想要输出的消息')  
    # 返回解析器对象  
    return parser  
  
# 创建解析器对象  
parser = create_parser()  
# 解析命令行参数  
args = parser.parse_args()  
  
print(f"你输入的消息是: {args.message}")

赋值:字符串或字符串列表。

action (指定参数的处理方式):

当命令行参数出现时采取的动作。

赋值:store (默认,保存值到属性), store_const (保存一个常量值), store_truestore_false (保存 True 或 False),append (将值添加到列表中), append_const (添加一个常量到列表), count (计数出现的次数), help (打印帮助并退出), version (打印版本信息并退出)。

nargs (命令行应读取的命令行参数的数量):

赋值:整数,? (0或1), * (任意数量,作为列表存储), + (至少一个,作为列表存储), 字符串 (用于可变位置参数)。

const (当 action 为 store_const、append_const 时,指定要存储或追加的常量值):

赋值:任何类型。

default (当参数未在命令行中指定时使用的值):

参数的默认值。

赋值:任何类型。

type (指定如何将命令行参数转换为 Python 类型):

用于转换参数值的类型。

赋值:类型或可调用对象。

choices (限制参数的可能值):

赋值:容器类型(如列表或元组)。

required (是否需要该参数):

如果为 True,则参数是必需的。

赋值:布尔值。

help (在命令行帮助消息中显示的描述):

参数的简短描述。

赋值:字符串。

metavar (自定义命令行帮助中参数的显示名称):

在命令行帮助消息中使用的参数值的名称。如果不提供,则使用 flags 中的名称。

赋值:字符串。

dest (指定在解析后的命名空间中保存参数值的属性名):

参数值的属性名称(在解析后的命名空间对象中)。

赋值:字符串。

python 复制代码
import argparse  
  
# 创建一个ArgumentParser对象  
# description参数提供了程序的简短描述,而epilog参数提供了帮助信息的自定义结尾。  
parser = argparse.ArgumentParser(description='一个简单的命令行计算器', epilog='这是一个自定义的帮助信息结尾')  
   

# 定义位置参数名称:'numbers' 是这个位置参数的名称。在解析命令行参数后,可以通过 args.numbers【←这是一个列表】 来访问传递给这个参数的值。
# 【除了让人困惑以外没啥卵用】设置元变量名称:metavar='N' 指定了在帮助信息中显示的参数名称。当用户请求帮助时(如python script.py --help),他们会看到这个 N 作为参数的占位符。
# 指定参数类型:type=float 指定了参数的类型应该是浮点数。这意味着传递给 'numbers' 参数的值会被自动转换为浮点数类型。
# 设置参数数量:nargs='+' 指定了 'numbers' 参数应该接收一个或多个值。+ 符号表示至少需要一个值,而用户可以提供多个值,这些值将被收集到一个列表中。
# 提供帮助信息:help='要进行计算的数字' 提供了一条简短的描述,解释了这个参数的作用。这条信息将出现在程序的帮助输出中。
# 这行代码定义了一个名为 'numbers' 的位置参数,它接收一个或多个浮点数,并将这些数值收集到一个列表中。这个列表之后可以用于执行各种数值计算。

# 如果运行 python script.py 1.5 2.3 4.6,args.numbers 将会是一个包含 [1.5, 2.3, 4.6] 的列表。
parser.add_argument('numbers', metavar='N', type=float, nargs='+', help='要进行计算的数字')  
  
# 当用户通过命令行指定 -a或--add 选项时,
# 程序会将一个执行加法运算的函数【const=sum】存储【action='store_const'】到 args.operation 属性【 dest='operation'】中。
# 之后,程序可以使用这个函数来执行加法运算。
parser.add_argument('-a','--add', dest='operation', action='store_const', const=sum, default=sum,  help='执行加法运算 (默认操作)')  

# 当用户通过命令行指定 -m或--multiply 选项时,
# 程序会将一个执行乘法运算的匿名函数【const=lambda x: x[0] * x[1]】存储【action='store_const'】到 args.operation 属性【dest='operation'】中。
# 之后,程序可以使用这个函数来执行乘法运算。
parser.add_argument('-m','--multiply', dest='operation', action='store_const', const=lambda x: x[0] * x[1], help='执行乘法运算')  
  
# 使用parse_args方法解析命令行参数  
args = parser.parse_args()  
  
# args.operation是一个函数,args.numbers是一个列表,因此可以直接调用args.operation(args.numbers)进行计算
result = args.operation(args.numbers)  
  
print(result)
相关推荐
Juchecar20 分钟前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805130 分钟前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_31 分钟前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机7 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机8 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i8 小时前
drf初步梳理
python·django
每日AI新事件8 小时前
python的异步函数
python
这里有鱼汤10 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python