argparse 用法总结

本文总结了Python的argparse模块的使用,包括add_argument、ArgumentParser、nargs、action、default、add_mutually_exclusive_group和dest等关键概念。通过设置这些参数,可以自定义命令行接口的行为。此外,还提到了sys.argv[]如何存储运行时的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

add_argument
# 这是最基础的参数格式,如果是这样的格式,说明pkg是一个必须的参数,如果不加入这样的参数,则会报错。参数必须以‘-’开始。
parse.add_argument('-pkg', help='help')
ArgumentParser
# 导入命令行解析的库文件
import argparse  
# 为了别人执行代码的时候用--help看出来怎么使用这些代码
parse = argparse.ArgumentParser(description="test!!")  
# 这句也是要的,如果没这个, python test.py --help 没有信息
args = parse.parse_args()

以上两句是必须的,下面是根据你的代码需要添加的参数命令行:

nargs
# 如果没有nargs, 则执行代码的时候必须加上这个参数
# 如果有nargs说明这个参数可带可不带
parse.add_argument('need_or_not', help='need_or_not', nargs='?') 			
# 获取实际输入的参数
args = parse.parse_args()											
args = parse.parse_args()
parse.add_argument('-a', '--abc', help='a sourcedir', nargs='?')
print(args.abc)
#是错误的
print(args.a)
#运行时使用python demo.py -a abc
#或者使用python demo.py --abc abc(使用的是两个短横)
#说明添加的参数可以用-a 或者 --abc。但是解析的时候必须用全称。
action

有些参数可以不加上的时候默认的值是bool变量。

# 这里的参数action的作用标明如果不写参数的话默认的print(args.abc)的值是false,
# 但是如果加上参数的话默认的print(args.abc)的值 为true
# 其中运行的参数的值不需要加上,直接  python test.py --abc 
parse.add_argument('-a', '--abc', help='a sourcedir', action='store_true') 
default

上面的情况是默认为bool类型变量的0,当然也可以设置为自己想要的默认值。

parse.add_argument('-a','--abc',help='a sourcedir',action='store_true', default=3) 
# 这时如果加上default的关键字,如果加上--abc参数的话为则参数的值True
# 但如果不加则采用默认的3,不再是0 
add_mutually_exclusive_group

添加互斥的参数组,因为有些参数的使用是不能同时出现的:

# 必须先要定义一个互斥的参数组
group = parse.add_mutually_exclusive_group() 
group.add_argument('-a','--abc',help='a sourceaaa',action='store_true')
group.add_argument('-b','--bc',help='a sourceabb',action='store_true')

#-a  -b的参数只能加上一个无论在互斥组内有多少的参数,都只能出现一个。也可以都不加。
# python test.py -a

dest

# 这时参数的全名为abc,但是如果出现dest关键字,则全程为dest关键字定义的字
parse.add_argument('-a','--abc', dest='mn', help='a sourcedir', nargs='?') 
# 这时无论全名是mn,不再是abc
print(args.mn)
# 执行的时候正常
# python test.py --abc 123
sys.argv[]

python 中默认的sys.argv[]会自动保存运行python代码时的参数,如果参数为一个就保存在sys.argv[1]中,多的会依次向下存:

import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])

# python test.py --abc 123 -a 789
# >>>  test.py --abc 123 -a 789

https://blog.youkuaiyun.com/yuyushikuan/article/details/79729660

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值