python raymondh_Python命令模块argparse学习笔记(四)

默认参数

ArgumentParser.set_defaults(**kwargs)

set_defaults()可以设置一些参数的默认值

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('foo', type=int)

>>> parser.set_defaults(bar=123, baz='test')

>>> parser.parse_args(['456'])

Namespace(bar=123, baz='test', foo=456)

解析器级别的默认值会覆盖参数级别的默认值

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('--foo', default='bar')

>>> parser.set_defaults(foo='test')

>>> parser.parse_args([])

Namespace(foo='test')

get_defaults()方法可以获取add_argument()和set_defaults()中设置的默认值

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('--foo', default='bar')

>>> parser.set_defaults(air='test')

>>> parser.get_default('air')

'test'

>>> parser.get_default('foo')

'bar'

参数部分使用

如果脚本只使用所传参数中的几个参数,要把其他的参数传给其他脚本,可以使用parse_known_args()方法

ArgumentParser.parse_known_args(args=None, namespace=None)

它的工作方式与parse_args()非常相似,只是在出现额外的参数时不会产生错误,而是返回一个包含填充名称空间和剩余参数字符串的元组和列表

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('bar')

parser.add_argument('-t','--thread')

args = parser.parse_known_args()

if args:

print(args)

运行结果

前缀匹配规则适用于parse_known_args()

打印帮助

ArgumentParser.parse_args()

格式化和打印任何使用或错误消息

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('bar')

>>> parser.parse_args()

usage: [-h] bar

: error: the following arguments are required: bar

还有几种格式化的方法

ArgumentParser.print_usage(file=None)

打印一个关于如何在命令行上调用ArgumentParser的简要说明

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('--foo')

>>> parser.print_usage()

usage: [-h] [--foo FOO]

如果文件是None,则为sys.stdout

ArgumentParser.print_help(file=None)

打印帮助信息,包括程序使用方法和有关使用ArgumentParser的参数信息

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('--foo')

>>> parser.print_help()

usage: [-h] [--foo FOO]

optional arguments:

-h, --help show this help message and exit

--foo FOO

如果文件是None,则为sys.stdout

ArgumentParser.format_usage()

返回一个字符串,而不是打印,其中包含如何在命令行上调用ArgumentParser的简要说明

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('--foo')

>>> parser.format_usage()

'usage: [-h] [--foo FOO]\n'

还有一个也是返回字符串的方法

ArgumentParser.format_help()

返回一个包含帮助信息的字符串,包括程序用法以及有关使用ArgumentParser的参数信息

>>> parser = argparse.ArgumentParser()

>>> parser.add_argument('--foo')

>>> parser.format_help()

'usage: [-h] [--foo FOO]\n\noptional arguments:\n -h, --help show this help message and exit\n --foo FOO\n'

退出方法

ArgumentParser.exit(status=0, message=None)

此方法终止程序,以指定状态退出,如果给定,则在此之前打印消息

>>> import argparse

>>> parser = argparse.ArgumentParser()

>>> parser.exit(message='test')

test

然后脚本就直接退出了

ArgumentParser.error(message)

此方法将包含消息的使用消息打印到标准错误,并终止状态码为2的程序

>>> parser = argparse.ArgumentParser()

>>> parser.error(message='run error')

usage: [-h]

: error: run error

打印完错误信息后脚本就直接退出了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值