在 Python 中解析命令行参数
对于程序员来说,使用命令行几乎是家常便饭了。因为命令行下面的操作都比较便捷,不需要使用鼠标,手指可以不离开键盘,简单的一行命令能调用脚本执行很复杂的功能。而几乎每个命令行工具都提供了命令行的参数选项,方便使用者的学习、使用。
对于程序员来说,使用命令行几乎是家常便饭了。因为命令行下面的操作都比较便捷,不需要使用鼠标,手指可以不离开键盘,简单的一行命令能调用脚本执行很复杂的功能。而几乎每个命令行工具都提供了命令行的参数选项,方便使用者的学习、使用。
比如在命令行下输入 git --help
就能看到 Git 支持的命令行参数,每个对应的参数还有一些说明,能让没有使用过 Git 的人也能很快明白命令如何使用。
昨天我做的这个系统虽然用户只有自己,但是也加上了命令行参数的解析功能,让整个程序的逻辑看起来更清晰,使用起来也更方便。命令行参数解析是用 argparse 这个模块实现的,比如下面的例子就是 argparse 的简单使用。
import argparse
parser = argparse.ArgumentParser(description='Search some files')
parser.add_argument(dest='filenames',metavar='filename', nargs='*')
parser.add_argument('-p', '--pat',metavar='pattern', required=True,
dest='patterns', action='append',
help='text pattern to search for')
parser.add_argument('-v', dest='verbose', action='store_true',
help='verbose mode')
parser.add_argument('-o', dest='outfile', action='store',
help='output file')
parser.add_argument('--speed', dest='speed', action='store',
choices={'slow','fast'}, default='slow',
help='search speed')
args = parser.parse_args()
Argparse 使用要点
- argparse 主要包含
定位参数
和可选参数
,通过这两种参数的组合,可以配置出你想要的命令行参数; - 首先需要
import argparse
,然后初始化,接着添加add_argument
参数,并设置相应的选项; - 定位参数在每次调用中都是必填的,如果并不是每次都使用定位参数,可以在定位参数中设置默认值;
- 定位参数和可选参数的顺序在使用的时候可以不用关心,argparse 会识别出哪个是可选参数,哪个是定位参数;
- 如果有多个定位参数,只要设置好对应的类型,argparse 也会自动帮你区分清楚;
- 设置完毕后,在最后判断 args 就能获取到命令行输入的参数了。