Python之argparse

一、argparse简介

argparse 是 Python 标准库中用于解析命令行参数的模块。它提供了一种方便的方式来处理命令行输入,使得编写用户友好的命令行界面变得更加容易。

二、作用和优点

  1. 命令行参数解析: argparse 允许开发者定义程序所需的命令行参数,并提供了一个灵活的机制来解析这些参数。
  2. 用户友好: 提供了清晰的帮助消息和错误提示,使得用户更容易理解和正确使用程序。
  3. 类型检查: 支持将命令行参数解析为不同的数据类型,例如整数、浮点数、布尔值等。
  4. 默认值: 允许为每个参数设置默认值,以便用户在不提供参数时使用默认值。
  5. 子命令: 支持定义子命令,使得可以构建更复杂的命令行界面。
  6. 自动生成帮助信息: 自动生成帮助信息,包括参数描述、默认值等,方便用户了解如何使用程序。

三、构建argparse三步法(有示例)

1.构造解析器: argparse.Argumentparse()

2.添加参数: .add_argment()

3.解析参数: .parse_args()

示例:

import argparse

def main():
    parser = argparse.ArgumentParser(description='A simple program with command line arguments.')
    parser.add_argument('--input', type=str, help='Input file path')
    parser.add_argument('--output', type=str, help='Output file path')
    parser.add_argument('--verbose', action='store_true', help='Enable verbose mode')

    args = parser.parse_args()

    # Accessing the parsed arguments
    input_path = args.input
    output_path = args.output
    verbose_mode = args.verbose

    # Your program logic here
    print(f'Input file: {input_path}')
    print(f'Output file: {output_path}')
    print(f'Verbose mode: {verbose_mode}')

if __name__ == '__main__':
    main()

 在这个例子中,argparse 被用来定义三个命令行参数:--input--output,和 --verbose。用户可以通过在命令行中提供这些参数来控制程序的行为。例如:

python your_script.py --input input.txt --output output.txt --verbose

或者查看帮助:

python your_script.py -h

 四、add_argument 函数的常用参数

  1. name or flags
    parser.add_argument('-f', '--file', help='Input file path')
    

    解释:-f 是参数的短标志,--file 是参数的长标志,用户可以选择使用其中一个来指定参数。

  2. type

    parser.add_argument('--count', type=int, help='Number of iterations')
    

    解释:--count 参数的值将被解析为整数类型。

  3. default

    parser.add_argument('--output', default='output.txt', help='Output file path')
    

    解释:如果用户未提供 --output 参数,则使用默认值 'output.txt'

  4. required

    parser.add_argument('--input', required=True, help='Input file path')
    

    解释:--input 参数是必需的,用户必须提供该参数。

  5. choices

    parser.add_argument('--mode', choices=['train', 'test'], help='Operating mode')
    

    解释:--mode 参数只能接受 'train''test' 作为值,其他值将被拒绝。

  6. nargs

    parser.add_argument('--files', nargs='+', help='List of input files')
    

    解释:--files 参数可以接受一个或多个文件路径作为值,以列表的形式存储。

  7. action

    parser.add_argument('--verbose', action='store_true', help='Enable verbose mode')
    

    解释:如果提供了 --verbose 参数,则 args.verbose 的值将为 True,否则为 False

  8. help

    parser.add_argument('--input', help='Input file path')
    

    解释:提供有关 --input 参数的简短帮助信息,将显示在生成的帮助文档中。

  9. metavar

    parser.add_argument('--count', metavar='N', help='Number of iterations')

    解释:在帮助文档中显示的参数值的名称将为 N

  10. const

    parser.add_argument('--mode', choices=['train', 'test'], const='train', nargs='?', help='Operating mode')
    

    解释:如果用户未提供 --mode 参数,则 args.mode 的值将为 'train'。如果提供了该参数但未提供值,则 args.mode 的值也为 'train'

  11. dest

    parser.add_argument('--output', dest='output_file', help='Output file path')
    

    解释:args.output_file 将存储 --output 参数的值。

推荐看的B站视频辅助理解:

【argparse】教学,解析命令行,很实用的python模块_哔哩哔哩_bilibili

Python实用模块之argparse_哔哩哔哩_bilibili

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值