python 中的argparse模块——自定义程序参数

本文介绍了Python的argparse模块,用于在程序运行时接收命令行参数。通过示例展示了如何创建解析器,添加不同类型的参数如int、str,并设置了默认值和帮助信息。最后演示了如何解析参数并使用它们,例如获取批处理大小(batch)和过期时间(expire_time)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档

argparse模块可以在运行程序时传参到程序中,一般的步骤如下:

#导入模块
import argparse

#创建解析器
parser = argparse.ArgumentParser(description = 'parameter')
#通过add_argument()函数添加参数,默认type为str型
parser.add_argument('--batch', type = int, default = 100, help = 'the batch size')
#解析参数
args = parser.parse_args()

使用示例:

#导入模块
import argparse

def parameter():
    #创建解析器
    parser = argparse.ArgumentParser(description = 'parameter')
    #添加参数
    parser.add_argument('--batch', type = int, default = 100, help = 'the batch size')
    parser.add_argument('--expire_time', type = int,  default = 60, help = 'the expire_time')
    parser.add_argument('--table_name', type = str, help = 'the table_name')
    parser.add_argument('--date', type = int, default = date_default, help = 'the date')
    parser.add_argument('--name', type = str, default = 'driver_recall_condition', help = 'the name')
    parser.add_argument('--key', type = str, help = 'the key')
    parser.add_argument('--val', type = str, help = 'the val')

    args = parser.parse_args()
    return args
 
 if __name__=='__main__':
    
    arg = parameter()
    batch = arg.batch
    expire_time = arg.expire_time
    print(expire_time )
### 使用 Python `argparse` 模块设置和解析命令行参数 #### 创建 ArgumentParser 对象 为了使用 `argparse` 解析命令行参数,首先需要创建一个 `ArgumentParser` 实例。这个对象会保存所有的关于命令行参数的信息并处理这些信息。 ```python import argparse parser = argparse.ArgumentParser(description="这是一个简单的例子", prog="example_program")[^2] ``` 这段代码初始化了一个名为 `parser` 的 `ArgumentParser` 对象,并设置了描述信息以及程序名称。 #### 添加位置参数 可以向 `ArgumentParser` 中添加必要的命令行选项或参数。对于必需的位置参数: ```python parser.add_argument('input_file', help='输入文件路径') # 定义一个位置参数 input_file ``` 此语句定义了一个叫做 `input_file` 的位置参数,它没有前缀字符 `-` 或者 `--` 并且是必填项。 #### 添加可选参数 除了位置参数外,还可以通过指定带有前缀(通常是单个破折号 `-` 表示短选项名,两个破折号 `--` 表示长选项名)的方式添加可选参数: ```python parser.add_argument('-v', '--verbose', action='store_true', help='启用详细模式') ``` 这里定义了一个布尔类型的开关参数 `--verbose` 或其缩写形式 `-v`;当提供该标志时,对应的变量会被设为 True,默认情况下则为 False。 #### 处理互斥组中的参数 有时希望某些参数之间存在相互排斥的关系,这时可以通过 `mutually_exclusive_group()` 方法实现这一点: ```python group = parser.add_mutually_exclusive_group() group.add_argument('--foo', action='store_const', const=42, help='选择 foo 值为固定常量') group.add_argument('--bar', type=int, help='选择 bar 自定义整数值') ``` 上述代码片段展示了如何创建一组互斥的选择——要么使用固定的 `foo` 参数值,要么允许用户提供自定义的 `bar` 整数。 #### 获取解析后的参数 最后一步是从命令行获取实际传递给脚本的所有参数并将它们转换成易于访问的形式: ```python args = parser.parse_args() # 将命令行参数解析到 args 变量中 print(f'Input file is {args.input_file}') # 打印传入的位置参数 if args.verbose: # 如果启用了 --verbose 开关,则打印额外消息 print("Verbose mode enabled.") ``` 以上就是利用 `argparse` 设置和解析命令行参数的方法概览[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值