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)
相关推荐
湫ccc31 分钟前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe1 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin1 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
哭泣的眼泪4081 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
湫ccc2 小时前
《Python基础》之基本数据类型
开发语言·python
drebander3 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
威威猫的栗子3 小时前
Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画
开发语言·python
墨染风华不染尘4 小时前
python之开发笔记
开发语言·笔记·python
Dxy12393102164 小时前
python bmp图片转jpg
python
麦麦大数据4 小时前
Python棉花病虫害图谱系统CNN识别+AI问答知识neo4j vue+flask深度学习神经网络可视化
人工智能·python·深度学习