Python中argparse使用的时候用-还是用--?

本文介绍了Python的argparse模块用于命令行选项、参数和子命令解析的典型用法。通过示例展示了如何定义和使用短参数(-f)和长参数(--fold),并解释了当两者同时存在时,args对象只会包含一个属性(args.fold)。此外,还讨论了正确和不正确的参数调用方式。最后,强调了当仅保留长参数时,如只使用--fold,短参数(-f)将无法使用。
摘要由CSDN通过智能技术生成

在文件test.py中,

import argparse

parser = argparse.ArgumentParser(description="SSc score prediction.")
parser.add_argument( '-f', '--fold',choices=(1,2,3,4,5), help='5-fold training', type=int, default=2)  # 这里'-f'和'--fold'可以只保留一个,或者都保留。只保留一个的话,args就会存在响应的属性args.f或者args.fold。如果都保留的话,并不会同时存在2个属性,而是会存在args.fold这一个。
args = parser.parse_args()

a = args.fold  # 注意这里写a = args.f会报错,当有--fold和-f同时存在的时候,只会有args.fold而没有args.f
print(a)

上面这个代码是使用argparse的典型用法。因为代码中用了-f和–fold两种参数,所以可以通过以下方式运行这个文件:

python test.py -f=3 # okay
python test.py -f 3 # okay
python test.py --fold=3  # okay
python test.py --fold 3 # okay
python test.py --f 3 # okay, but nor recommended
python test.py -fold 3 # okay

python test.py -f==3 # wrong
python test.py --fold==3 # wrong

如果把代码改成:

import argparse

parser = argparse.ArgumentParser(description="SSc score prediction.")
parser.add_argument('--fold',choices=(1,2,3,4,5), help='5-fold training', type=int, default=2)
args = parser.parse_args()

a = args.fold
print(a)

这个时候就只能使用python test.py --fold=3这种方式来运行,不能再用-f=3了,因为-f根本没有定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值