python中如何使用argparse

程序员卷不动了 2023-03-16 PM 257℃ 0条

argparse是Python标准库中的一个命令行参数解析模块,它可以帮助我们通过命令行传递参数,以便更方便地执行Python代码。

以下是argparse使用的一些步骤:

1.导入argparse模块:

import argparse

2.创建ArgumentParser对象:

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')

3.添加命令行参数:

parser.add_argument('--test', dest='test', action='store_true',help='帮助信息')

add_argument方法的参数解释:

--test :参数名称

dest='test' :参数别名,可以通过args.test来调用

action='store_true' :表示如果命令行中有--test参数,则args.test为True,否则为False

help='帮助信息' :参数提示信息,显示在命令行中

4.解析命令行参数:

args = parser.parse_args()

5.使用命令行参数:

if args.test:
    print('执行测试操作')

完整的argparse使用例子:

import argparse

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')
parser.add_argument('--test', dest='test', action='store_true',help='帮助信息')

args = parser.parse_args()

if args.test:
    print('执行测试操作')

命令行中执行命令:

python argparse_demo.py --test

输出结果:

执行测试操作

argparse还提供了更高级的用法,以下是一些常用的高级用法:

1.子命令

子命令是指命令行中一个高级别命令下的不同操作。可以通过添加子命令来组织命令行参数。

import argparse

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')

subparsers = parser.add_subparsers(help='sub-command help')

# parser for the "foo" command

parser_foo = subparsers.add_parser('foo', help='foo help')
parser_foo.add_argument('foo', help='foo help')

# parser for the "bar" command

parser_bar = subparsers.add_parser('bar', help='bar help')
parser_bar.add_argument('--bar', help='bar help')

args = parser.parse_args()

2.互斥参数

互斥参数指的是在命令行中不能同时出现的参数。

import argparse

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')
group = parser.add_mutually_exclusive_group()
group.add_argument('--foo', action='store_true')
group.add_argument('--bar', action='store_false')
args = parser.parse_args()

3.自定义类型

argparse允许我们自定义参数类型。

import argparse

class MyFileType(argparse.FileType):
    def __call__(self, string):
        if not string.endswith('.txt'):
            raise argparse.ArgumentTypeError('文件类型必须是txt')
        return super().__call__(string)

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')
parser.add_argument('file', type=MyFileType('r'), help='文件类型必须是txt')

args = parser.parse_args()

4.参数默认值

我们可以为参数设置默认值,当命令行中没有指定对应的参数时,使用默认值。

import argparse

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')
parser.add_argument('--foo', default='bar', help='default value for foo is %(default)s')

args = parser.parse_args()

5.参数解析器组

我们可以为参数分组,方便在命令行中展示和调用。

import argparse

parser = argparse.ArgumentParser(description='这是一段用于展示argparse用法的例子')

group = parser.add_argument_group('argument group')
group.add_argument('--foo', help='foo help')

args = parser.parse_args()

这些都是argparse的一些高级用法,可以提高我们的命令行参数解析代码的可读性和可维护性。

标签: python, argparse

非特殊说明,本博所有文章均为博主原创。

评论啦~