Python技法:用argparse模块解析命令行选项

1. 用argparse模块解析命令行选项

Python命令行程序做为其中一种,其传参中也包括了 位置参数(positional arguments)可选参数(optional arguments)
img
(注意,可选参数的选项名称以 --- 打头,位置参数和可选参数的先后顺序可以任意排布)

那么在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值