Python中argparse的用法

本文介绍了Python内置模块argparse的使用,包括参数解析、默认值、必选参数、参数类型、选择限制及帮助信息的设置。argparse简化了命令行选项、参数和子命令的解析,是Python中处理命令行输入的强大工具。通过示例代码,详细讲解了argparse的基本用法和关键特性,帮助开发者更好地理解和应用argparse。
摘要由CSDN通过智能技术生成

Python中argparse的用法(Gan)

1.简介

在学习Gan网络的过程中,记录使用过程中未学习到一些函数知识,方便以后可以查阅。在使用Gan的时候,非常困惑argparse究竟是做什么用的,查阅大量资料后 ,发现用法具体如下。

2.argparse的简介

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。当你的代码参数需要频繁修改,就需要使用这个参数将你的参数和代码进行分离。

3.argparse的基本用法

首先我们从最基本的框架说起argparse的用法。
添加一个命令行参数,并获取打印
python TestArgParse.py --name=“Ming”
如果后边不加–name则会有一个默认值
控制台会输出Hello–Ming

import argparse
# 使用argparse从命令行获取用户名,然后打印’Hello‘+ 用户名,假设python文件名为TestArgParse.py
def test_argparse():
    """
        测试argparse参数的解析
        :return:返回解析的参数
    """
    # 对参数进行解析
    parse = argparse.ArgumentParser(description="Test of argparse")
    parse.add_argument("--name",default="Zhou")
    return parse
if __name__=='__main__':
    parser = test_argparse()
    args = parser.parse_args()
    name = args.name
    print("Hello--{}".format(name))

上面的代码段中,我们显示引入了argparse包,然后通过argparse.ArgumentParser函数生成argparse对象,其中这个函数的description函数表示在命令行显示帮助信息的时候,这个程序的描述信息。之后我们通过对象的add_argument函数来增加参数。这里我们只增加了一个–name的参数,然后后面的default参数表示如果没提供参数,我们默认采用的值。
最后我们通过argpaser对象的parser_args函数来获取所有参数args,然后通过args.name的方式得到我们设置的–name参数的值,可以看到这里argparse默认的参数名就是–name形式里面–后面的字符串。

import argparse
# 使用argparse从命令行获取用户名,然后打印’Hello‘+ 用户名,假设python文件名为TestArgParse.py
def test_argparse():
    """
        测试argparse参数的解析
        :return:返回解析的参数
    """
    # 对参数进行解析
    parse = argparse.ArgumentParser(description="Test of argparse")
    parse.add_argument("--name",default="Zhou")
    parse.add_argument("--age", default=18)
    return parse
if __name__=='__main__':
    parser = test_argparse()
    args = parser.parse_args()
    name = args.name
    print("Hello--{}".format(name))
    print(args)

4.argparse中参数的基本使用

4.1.default:

我们可以设置一个默认值,在命令行未给出参数的情况下,将会使用默认的参数,一般在开发过程不容易出错。

4.2.required:

表示这个参数是否一定需要设置

4.2.type:参数类型

	默认的参数类型是str类型,如果你的程序需要一个整数或者布尔型参数,你需要设置type=int或type=bool

4.3.choices:参数值只能从几个选项里面选择

import argparse
# 使用argparse从命令行获取用户名,然后打印’Hello‘+ 用户名,假设python文件名为TestArgParse.py
def test_argparse():
    """
        测试argparse参数的解析
        :return:返回解析的参数
    """
    # 对参数进行解析
    parse = argparse.ArgumentParser(description="Test of argparse")
    parse.add_argument("--name",default="Zhou")
    parse.add_argument("--age", default=18)
    parse.add_argument('-arch', required=True, choices=['nlp', 'cv'],help='NLP是自然语言处理,CV是计算机视觉')
    return parse
if __name__=='__main__':
    parser = test_argparse()
    args = parser.parse_args()
    name = args.name
    print("Hello--{}".format(name))
    print('the arch of CNN is {}'.format(args.arch))
    print(args)

4.4.help:

指定参数的说明信息,在现实帮助信息的时候,help参数的值可以给使用工具的人提供该参数是用来设置什么的说明,对于大型的项目,help参数和很有必要的,不然使用者不太明白每个参数的含义,增大了使用难度。

4.5.dest:

设置参数在代码中的变量名。argparse默认的变量名是–或-后面的字符串,但是你也可以通过dest=xxx来设置参数的变量名,然后在代码中用args.xxx来获取参数的值。

4.6.nargs

: 设置参数在使用可以提供的个数
import argparse
# 使用argparse从命令行获取用户名,然后打印’Hello‘+ 用户名,假设python文件名为TestArgParse.py
def test_argparse():
    """
        测试argparse参数的解析
        :return:返回解析的参数
    """
    # 对参数进行解析
    parse = argparse.ArgumentParser(description="Test of argparse")
    parse.add_argument("--name",default="Zhou")
    parse.add_argument("--age", default=18)
    # '?'0或1个参数
    # '*'0或所有参数
    # '+'至少一个参数
    parse.add_argument('--address', nargs="+",required=True)
    parse.add_argument('-arch', required=True, choices=['alexnet', 'vgg'],help='the architecture of CNN, at this time we only support alexnet and vgg.')
    return parse
if __name__=='__main__':
    parser = test_argparse()
    args = parser.parse_args()
    name = args.name
    print("Hello--{}".format(name))
    print('the arch of CNN is {}'.format(args.arch))
    print(args)

当设置required为True的时候,必须要赋值一个值,否则会报如下的错误。

python TestArgParse.py --name="Ming" -arch=vgg
usage: TestArgParse.py [-h] [--name NAME] [--age AGE] --address ADDRESS
                       [ADDRESS ...] -arch {alexnet,vgg}
TestArgParse.py: error: the following arguments are required: --address

参考连接
[1]: https://docs.python.org/3/library/argparse.html
[2]: http://blog.xiayf.cn/2013/03/30/argparse/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Algorithm_Engineer_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值