使用 argparse 模块像专业人士一样解析参数。
-- Seth Kenlon(作者)
如果你在使用 Python 进行开发,你可能会在终端中使用命令,即使只是为了启动 Python 脚本或使用 pip 安装 Python 模块。命令可能简单而单一:
$ ls
命令也可能需要参数:
$ ls example
命令也可以有选项或标志:
$ ls --color example
有时选项也有参数:
$ sudo firewall-cmd --list-all --zone home
参数
POSIX shell 会自动将你输入的内容作为命令分成数组。例如,这是一个简单的命令:
$ ls example
命令 ls 的位置是 $0,参数 example 位置是 $1。
你可以写一个循环迭代每项。确定它是否是命令、选项还是参数。并据此采取行动。幸运的是,已经有一个名为 argparse 的模块。
argparse
argparse 模块很容易集成到 Python 程序中,并有多种便利功能。例如,如果你的用户更改选项的顺序或使用一个不带参数的选项(称为布尔,意味着选项可以打开或关闭设置),然后另一个需要参数(例如 --color red),argparse 可以处理多种情况。如果你的用户忘记了所需的选项,那么 argparse 模块可以提供友好的错误消息。
要在应用中使用 argparse,首先要定义为用户提供的选项。你可以接受几种不同的参数,而语法一致又简单。
这是一个简单的例子:
#!/usr/bin/env pythonimport argparseimport sysdef getOptions(args=sys.argv[1:]): parser = argparse.ArgumentParser(description="Parses command.") parser.add_argument("-i