argparse的基本使用方法

argparse主要用于解析参数,下面以一个示例展示argparse的基本用法。
完整版请参考链接: link.

示例

以下代码是一个 Python 程序,它获取一个整数列表并计算总和或者最大值:

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

假设上面的 Python 代码保存在名为 prog.py 的文件中,它可以在命令行运行并提供有用的帮助消息:

$ python prog.py -h
usage: prog.py [-h] [--sum] 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`argparse` 是 Python 标准库中用于解析命令行参数和选项的模块。它可以让你的 Python 脚本更加灵活,可以从命令行中接收参数和选项,并且可以根据用户提供的参数来执行不同的操作。下面是一些使用 `argparse` 的笔记: ### 基本示例 ```python import argparse parser = argparse.ArgumentParser(description='命令行参数解析示例') parser.add_argument('--url', type=str, help='需要处理的URL') parser.add_argument('--file', type=str, help='需要处理的文件路径') args = parser.parse_args() if args.url: print('处理URL:', args.url) elif args.file: print('处理文件:', args.file) else: print('请提供URL或文件路径') ``` 在上面的例子中,我们使用 `argparse` 创建了一个解析器对象,然后添加了两个参数 `--url` 和 `--file`。`type` 参数指定了参数的类型,`help` 参数指定了参数的帮助信息。最后,使用 `parse_args()` 方法解析命令行参数,并根据参数执行不同的操作。 ### 必需参数 ```python import argparse parser = argparse.ArgumentParser(description='命令行参数解析示例') parser.add_argument('input', type=str, help='输入文件路径') parser.add_argument('output', type=str, help='输出文件路径') args = parser.parse_args() print('输入文件:', args.input) print('输出文件:', args.output) ``` 在上面的例子中,我们将参数 `input` 和 `output` 指定为必需参数,这意味着用户必须在命令行中提供这两个参数,否则程序将会抛出异常。 ### 默认值 ```python import argparse parser = argparse.ArgumentParser(description='命令行参数解析示例') parser.add_argument('--url', type=str, help='需要处理的URL', default='https://www.baidu.com') parser.add_argument('--file', type=str, help='需要处理的文件路径', default='data.txt') args = parser.parse_args() print('处理URL:', args.url) print('处理文件:', args.file) ``` 在上面的例子中,我们为参数 `--url` 和 `--file` 指定了默认值,这意味着如果用户没有在命令行中提供这两个参数,那么程序将使用默认值。默认值可以是任何类型的值,不仅仅限于字符串类型。 ### 多个值 ```python import argparse parser = argparse.ArgumentParser(description='命令行参数解析示例') parser.add_argument('--input', type=str, help='输入文件路径', nargs='+') parser.add_argument('--output', type=str, help='输出文件路径') args = parser.parse_args() print('输入文件:', args.input) print('输出文件:', args.output) ``` 在上面的例子中,我们将参数 `--input` 指定为多个值,这意味着用户可以在命令行中提供多个输入文件路径,例如 `--input file1.txt file2.txt`。使用 `nargs='+'` 将参数指定为多个值,使用 `args.input` 来访问这些值。 ### 限制值的范围 ```python import argparse parser = argparse.ArgumentParser(description='命令行参数解析示例') parser.add_argument('--size', type=int, help='图像大小', choices=[256, 512, 1024]) args = parser.parse_args() print('图像大小:', args.size) ``` 在上面的例子中,我们将参数 `--size` 指定为整数类型,并且限制了它的取值范围只能是 256、512 或 1024。如果用户在命令行中指定了一个不在这个范围内的值,程序将会抛出异常。 ### 子命令 ```python import argparse parser = argparse.ArgumentParser(description='命令行参数解析示例') subparsers = parser.add_subparsers(title='子命令', description='可用的子命令') parser_a = subparsers.add_parser('a', help='子命令A') parser_a.add_argument('--input', type=str, help='输入文件路径') parser_a.add_argument('--output', type=str, help='输出文件路径') parser_b = subparsers.add_parser('b', help='子命令B') parser_b.add_argument('--url', type=str, help='需要处理的URL') args = parser.parse_args() if hasattr(args, 'input'): print('处理文件:', args.input) print('输出文件:', args.output) elif hasattr(args, 'url'): print('处理URL:', args.url) else: print('请提供子命令参数') ``` 在上面的例子中,我们使用 `add_subparsers()` 方法创建了子命令解析器对象,并添加了两个子命令 `a` 和 `b`。然后,我们为每个子命令添加了不同的参数。最后,根据子命令参数执行不同的操作。 以上就是一些 `argparse` 的基本使用笔记,希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值