0x00 argparse
介绍
argparse
是 Python 的一个命令行解析包,用户编写可读性非常好的程序。
0x01 基本用法
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
运行结果:
> python3 argparse-demo-help.py
> python3 argparse-demo-help.py --help
usage: argparse-demo-help.py [-h]
optional arguments:
-h, --help show this help message and exit
> python3 argparse-demo-help.py -h
usage: argparse-demo-help.py [-h]
optional arguments:
-h, --help show this help message and exit
> python3 argparse-demo-help.py -v
usage: argparse-demo-help.py [-h]
argparse-demo-help.py: error: unrecognized arguments: -v
>
0x02 固定参数
固定参数是必须按照固定的顺序加入的参数,而且不可缺省。如:ping 127.0.0.1
这样的一个命令,ping
后面直接更上 127.0.0.1
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo", help="Input what echo what.")
args = parser.parse_args()
print(args.echo)
运行结果:
> python3 argparse-demo-positional-argument.py hello
hello
> python3 argparse-demo-positional-argument.py -h
usage: argparse-demo-positional-argument.py [-h] echo
positional arguments:
echo Input what echo what.
optional arguments:
-h, --help show this help message and exit
>
0x03 可选参数
有两种方式:
- 一种通过一个
-
来指定的短参数,如-h
- 一种通过
--
来指定的长参数,如--help
这两种方式可以同时存在,也可以只存在一个。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-H', '--host', help='host')
args = parser.parse_args()
print('host is %s' % args.host)
运行结果:
> python3 argparse-demo-optional-argument.py -h
usage: argparse-demo-optional-argument.py [-h] [-H HOST]
optional arguments:
-h, --help show this help message and exit
-H HOST, --host HOST host
> python3 argparse-demo-optional-argument.py -H 127.0.0.1
host is 127.0.0.1
> python3 argparse-demo-optional-argument.py --host 127.0.0.1
host is 127.0.0.1
注意: 设置的参数不可以重名,会冲突。这也是为什么以上的例子中是 -H
而不是 -h
,因为 -h
已经被帮助信息默认绑定了。
0x04 参数默认值
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-H', '--host', help='host', default='127.0.0.1')
args = parser.parse_args()
print('host is %s' % args.host)
运行结果:
> python3 argparse-demo-with-default-value.py -h
usage: argparse-demo-with-default-value.py [-h] [-H HOST]
optional arguments:
-h, --help show this help message and exit
-H HOST, --host HOST host
> python3 argparse-demo-with-default-value.py
host is 127.0.0.1
> python3 argparse-demo-with-default-value.py -H 127.0.0.2
host is 127.0.0.2
0x05 总结
其实大部分时候我们只需要以上功能就足够了,所以一些其他的用法这里就不去过多的描述了。
喵喵怪的小枪枪、biu~~