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的一些高级用法,可以提高我们的命令行参数解析代码的可读性和可维护性。