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)
相关推荐
谷隐凡二11 分钟前
python中ocr图片文字识别样例(一)
开发语言·python·ocr
Fiona.y16 分钟前
梯度计算中的一些算子
图像处理·python·opencv·计算机视觉
卡卡_R-Python33 分钟前
cnn机器学习时python版本不兼容报错
python·机器学习·cnn
霍夫曼vx_helloworld735236 分钟前
深度学习与应用:人体关键点检测
python·深度学习
技术无疆42 分钟前
【Python】Tartiflette:用 Python 实现的 GraphQL 服务器
服务器·开发语言·后端·python·pygame·graphql·python3.11
Feng_Sean1 小时前
18_Python文件操作
开发语言·人工智能·python
shangtaobocdns1 小时前
django+vue
vue.js·python·django
ClearStari991 小时前
【python】数据爬虫,抓取并分析豆瓣电影信息
开发语言·爬虫·python
Envyᥫᩣ1 小时前
Python中的数据可视化:从基础图表到高级可视化
开发语言·python·信息可视化