Python---argparse用法

Python—argparse用法

初步使用

import argparse

parser = argparse.ArgumentParser(description=“your messages”)  # 创建解析对象
# description 可以用于插入描述脚本用途的信息,也可以为空

parser.add_argument() #在对象中添加命令行参数和选项
parser.parse_args() # 进行解析

>> python demo.py -h # 查看帮助文档

位置参数 positional arguments

位置参数默认必选,需输入;若不输入则报错。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("pos_param", help="参数描述信息")
args = parser.parse_args()
print(args.pos_param)

>> python demo.py hello
>> hello

可选参数 optional arguments

-指定短参数,如 -h
--指定长参数,如 --help

这两种方式可以同存,也可以只存在一个。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-v", help="添加输出 verbosity")
args = parser.parse_args()
if args.v:
    print("打开 verbosity")

>> python demo.py -v hello
>> hello
import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("--verbosity", help="添加输出 verbosity")
args = parser.parse_args()
if args.verbosity:
    print(args.verbosity)

>> python demo.py --verbosity hello
>> hello

同时存在两个参数(长 + 短),可在命令行中通过 -v 或 --verbosity 来为参数赋值。
但args中保存的参数为长参数verbosity,无短参数v,调用args.v 将报错

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-v", "--verbosity", help="添加输出 verbosity")
args = parser.parse_args()
if args.verbosity:
    print(args.verbosity)

>> python demo.py -v hello
或
>> python demo.py --verbosity hello
>> hello

action = “store_true”

添加action = “store_true” 后,无需指定参数值;若命令行中出现 --verbosity,则其值为True

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("--verbosity", help="添加输出 verbosity", action = "store_true")
args = parser.parse_args()
if args.verbosity:
    print(args.verbosity)

>> python demo.py --verbosity
>> True

参数类型type

默认的参数类型为str,若要进行数学计算,则需要在参数解析后进行类型转换。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-x", type=int, help="输入数字")
args = parser.parse_args()

y = args.x
print(y, type(y))
>> python demo.py -x 3
>> 3 <class 'int'>

可选值 choices=[]

action可定义参数的默认值为True和False;若要限制某个值的取值范围,可使用choices。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-x", type=int, choices=[1, 2, 3], help="输入数字")
args = parser.parse_args()

y = args.x
print(y, type(y))

>> python demo.py -x 4
>> error: argument -x: invalid choice: 4 (choose from 1, 2, 3)

>> python demo.py -x 3
>> 3 <class 'int'>

互斥参数

通过创建互斥组,使得互斥组中的参数只能出现一个

import argparse

parser = argparse.ArgumentParser() 
# 添加互斥组
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", action="store_true")
group.add_argument("-q", action="store_true")

parser.add_argument("-x", action="store_true")
args = parser.parse_args()

if args.q:
    print(args.q)

if args.v:
    print(args.v)


>> python demo.py -h
>> usage: demo.py [-h] [-v | -q] [-x]

>> python demo.py -v -q	
>> error: argument -q: not allowed with argument -v

>> python demo.py -v
>> True

参数默认值

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-x", type=int, default=1, help="输入数字")
args = parser.parse_args()

if args.x:
    print(args.x)

>> python demo.py
>> 1

>> python demo.py -x 3
>> 3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值