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)
相关推荐
woxihuan1234563 分钟前
CSS移动端实现响应式导航菜单_利用媒体查询切换显示隐藏状态
jvm·数据库·python
CCPC不拿奖不改名4 分钟前
PostgreSQL数据库部署linux服务器流程
linux·服务器·数据库·windows·python·docker·postgresql
曲幽4 分钟前
你的Agent API还在裸奔?从认证到沙箱,我用FastAPI搭了几道防线
python·fastapi·web·security·jwt·oauth2·limit·sandbox·ai agent
donecoding5 分钟前
用了多年 nvm,我终于找到 Python 的版本管理「答案」:uv
python·node.js·前端工程化
彳亍1016 分钟前
mysql如何通过mysqldump备份视图与触发器_使用相关参数
jvm·数据库·python
深度学习lover11 分钟前
<数据集>yolo 缆绳识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·缆绳识别
骑士雄师14 分钟前
学生管理系统python版本比对
开发语言·python
William.csj15 分钟前
Linux——服务器后台运行程序指南(包含 Python 与 .sh 脚本实战)
linux·服务器·python
Cloud_Shy61823 分钟前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十章 Python 驱动的 Excel 工具 上篇)
vscode·python·数据分析·excel·pandas
EW Frontier24 分钟前
【信号分选】深度学习颠覆射频信号分离:UNet/WaveNet 性能碾压传统方法【附python代码】
python·深度学习·unet·wavenet·射频信号源分离·icassp信号处理挑战赛