Python的argparse模块

argparse模块可以为py文件封装好可以选择的参数,使他们更加灵活,丰富。

argparse模块的基础语法:

  1. 创建ArgumentParser()解析对象 #parser = argparse.ArgumentParser()
  2. 使用add_argument()方法增加参数 #parser.add_argument()
  3. 使用parse_args()方法进行参数解析及添加参数 # args = parser.parse_args()
  4. 使用print_help()方法查看构建对象的详细内容 #parser.print_help()

一:argparse.ArgumentParser()方法

prog=None - 程序名,(default: sys.argv[0])
usage -描述程序的使用方法,默认主动添加
description=None, - help时显示的开始文字,默认为None
epilog=None, - help时显示的结尾文字,默认为None
parents=[], -若与其他参数的一些内容一样,可以继承,A list of ArgumentParser
formatter_class=argparse.HelpFormatter, - 自定义帮助信息的格式
prefix_chars=’-’, - 命令的前缀,默认是‘-’
fromfile_prefix_chars=None, - 命令行参数从文件中读取
argument_default=None, - 设置一个全局的选项缺省值,一般每个选项单独设置
conflict_handler=‘error’, - 定义两个add_argument中添加的选项名字发生冲突时怎么处理,默认处理是抛出异常
add_help=True - 是否增加-h/–help选项,默认是True)

二:add_argument()的方法

name or flags… - 必选,指定参数的形式,一般写两个,一个短参数,一个长参数
action - 表示值赋予键的方式,常用action = ‘store_true’,表示该选项后不需接受参数
help - 可以写帮助信息
required - 必需参数,通常-f这样的选项是可选的,但是如果required=True那么就是必须的了
type - 指定参数类型
choices - 设置参数的范围,表示该参数能接受的值只能来自某几个值候选值中,除此之外会报错
nargs - 指定这个参数后面的value有多少个,默认为1。’?‘表示可有可无 ,’+‘表示至少一个,’*'可以任意个, 数字表示必须是指定数目个 。nargs是控制位置参数和选项参数的,不能控制选项参数后面的参数数目。
dest - 设置这个选项的value解析出来后放到哪个属性中
参数分类 :
位置参数:——参数放在那里,就要对应一个参数位置。位置参数,必须传入,否则会报错。也可通过nargs参数和default参数配合,变为可传可不传参数。
选项参数:——必须通过前面是 - 的短选项或者 – 的长选项,然后后面的才算该选项的参数,当然选项后面也可以没有参数。

import argparse
parser=argparse.ArgumentParser(prog='ls',description='like-ls')
parser.add_argument('path')
args=parser.parse_args()
print(args)
parser.print_help()
#运行时不传入参数会报如下错误
usage: ls [-h] path
ls: error: the following arguments are required: path

#将path这个位置参数变为可传可不传参数
importargparse
parser=argparse.ArgumentParser(prog='ls',description='like-ls')
parser.add_argument('path',nargs='?',default='.')#nargs='?'表示path参数可传可不传,不传就用default缺省参数,传参就用传的参数
args=parser.parse_args()
print(args)
parser.print_help()
#运行时不传参就不会报错了
usage: ls [-h] [path]
like-ls
positional arguments:
path
optional arguments:
-h, --help  show this help message and exit

默认情况下,选项参数后会要求在传入参数,可通过action方法设置

import argparse
parser=argparse.ArgumentParser(prog='ls',description='like-ls')
parser.add_argument('-a')
args=parser.parse_args()
print(args)
parser.print_help()
#执行结果
Namespace(a=None)
usage: ls [-h] [-a A]
like-ls
optional arguments:
  -h, --help  show this help message and exit
  -a A   #选项参数后需传入参数A
  
 #设置action = ‘store_true’可取消选项参数后的参数,表示当传入-a选项参数时,args.a返回true,否则返回false
import argparse
parser=argparse.ArgumentParser(prog='ls',description='like-ls')
parser.add_argument('-a',action='store_true')
args=parser.parse_args()
print(args)
parser.print_help()
#执行结果
Namespace(a=False)
usage: ls [-h] [-a]
like-ls
optional arguments:
  -h, --help  show this help message and exit
  -a

三:parse_args()的方法:

parse_args(args=None, namespace=None)
args 参数列表,一个可迭代对象。内部会把可迭代对象转换成list。如果为None则使用命令行传入参数,非None则使用args参数的可迭代对象。

 importargparse
    parser=argparse.ArgumentParser(prog='ls',description='like-ls')
    parser.add_argument('path',nargs='?',default='.',help='pathhelp')
    args=parser.parse_args(('/etc',))  #为什么'/etc'需用元组包起来,因为要求传入可迭代对象
    print(args)
    parser.print_help()
    输出
    Namespace(path='/etc')
    usage: ls [-h] [path]
    like-ls
    positional arguments:
      path        path help
    optional arguments:
      -h, --help  show this help message and exit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值