1. 用argparse模块解析命令行选项
Python命令行程序做为其中一种,其传参中也包括了 位置参数(positional arguments) 和 可选参数(optional arguments) :

(注意,可选参数的选项名称以 -- 或 - 打头,位置参数和可选参数的先后顺序可以任意排布)
那么在Python程序中我们如何解析在命令行中提供的各种选项呢?(选项保存在 sys.argv 中)我们可以使用 argparse 模块。我们用下面这个 search.py 程序做例子:
1.1 创建parser对象
首先我们需要创建 parser 对象:
import argparse
parser = argparse.ArgumentParser(description="search some files")
1.2 添加选项声明
然后使用 parser.add_argument() 方法添加想要支持的选项声明。 add_argument() 的调用参数承担了不同的功能:
dest指定了用来保存解析结果的属性名称。metavar用于显示帮助信息,如果不指定则默认为大写的属性名。action指定了与参数处理相关的行为(store表示存储单个值,append表示将多个值存到一个列表中)。
我们尝试依次添加如下选项声明进行测试:
解析位置参数
parser.add_argument(dest="filenames", metavar="filename", nargs="*")
该参数为位置参数,不需要像可选参数的选项一样用 - 或 -- 打头。位置参数一般是必须要提供的(虽然这里你不提供也能保存为 [] )。 nargs="*" 表示将所有额外命令行参数保存在一个列表中。
解析可选参数
parser.add_argument("-p", "--pat", metavar="pattern", required=True, dest="patterns", action="append", help="text pattern to search for")
-p 和 --pat 两种选项名称都可接收(前者是简写,后者是全称)。我们在上一篇博客说过,在调用Shell命令时规定对于简写的选项名用 -p ×× 形式传参,对于全称

最低0.47元/天 解锁文章
240

被折叠的 条评论
为什么被折叠?



