您的位置:

Python add_argument详解

一、介绍

Python是一种高级编程语言,具有简单、易读、开放源代码和跨平台等特性。在Python中,argparse是一个标准库,用于编写命令行接口工具,它可以轻松地生成命令行界面,有效的解析命令行参数。其中,add_argument()是argparse中最重要的函数之一,它允许您指定所需的参数,验证输入并提供帮助信息。

二、基础用法

add_argument()函数的最低要求是指定一个参数名称,通常是一个字符串,这个字符串表示要使用的命令行开关。 命令行开关通常是以”-”或”--”开头的短字符串或长字符串,例如”-h”或”--help”。

示例代码:

import argparse

parser = argparse.ArgumentParser(description='这是一个简单的例子')
parser.add_argument('-u', '--user', help='使用者')
parser.add_argument('-p', '--password', help='密码')

args = parser.parse_args()

user = args.user
password = args.password

print(user, password)

在上面的示例代码中,我们创建了一个ArgumentParser对象。然后,使用add_argument()函数添加两个参数,以便在命令行中使用。分别为-u和-p,带有长串的user和password作为辅助标识。最后,通过参数解析对设置的参数进行赋值,并打印出结果。当在命令行中键入参数时,可以像下面这样:

$ python3 test.py -u john -p 12345678

三、添加值约束条件

add_argument()还支持为参数添加值约束条件,以确保用户试图传递正确的信息。值约束条件可以是类型检查(如int,float),字符串长度,输入范围和正则表达式等。

示例代码:

import argparse

parser = argparse.ArgumentParser(description='这是一个例子')
parser.add_argument('file', type=argparse.FileType('r'), help='输入的文件')
parser.add_argument('-m', '--mode', type=str, choices=['grep', 'add'], help='工作模式')
parser.add_argument('-s', '--str', type=str, help='字符串')
parser.add_argument('-v', '--value', type=int, nargs='+', help='一个或多个值')

args = parser.parse_args()

file = args.file
mode = args.mode
value = args.value
str = args.str

print(file.readline())

if mode == 'add':
    print(value)
elif mode == 'grep':
    print(str)

在上面的示例代码中,我们添加了对所添加参数的类型、允许的值和数组类型的约束。这里的'grep'和'add'是模式参数所允许的选项,args.value使用nargs+代表允许输入任何数量的整数。

四、组参数

使用组参数,可以将多个参数组合到一个组中,并将组的设置作为统一的限制条件来管理。在使用add_argument()函数时,可以传递一个参数,help表示这是一个组。

示例代码:

import argparse

parser = argparse.ArgumentParser(description='这是一个例子')
group = parser.add_argument_group('这是组1')
group.add_argument('-u', '--user', help='用户名')
group.add_argument('-p', '--password', help='密码')

group2 = parser.add_argument_group('这是组2')
group2.add_argument('-n', '--name', help='姓名')
group2.add_argument('-a', '--age', help='年龄')

args = parser.parse_args()

user = args.user
password = args.password
name = args.name
age = args.age

print(user, password, name, age)

在上面的示例代码中,我们创建了第一个组”group1”,包含两个参数,-u和在命令行中使用长串user作为标识。同时,创建了另一个组”group2”,包含两个参数,-n和-a,在命令行中使用长串name和age作为样板。最后通过参数解析拿到user、password、name和age。

五、自定义帮助信息

argparse中自定义帮助信息是非常有用的,因为他们可以更好地描述你的参数的作用。 add_argument()函数有很多的参数,其中之一便是help。通过设置它,可以自定义帮助消息。当然,还有其他设置选项通过which可以自定义帮助消息内容。

示例代码:

import argparse

parser = argparse.ArgumentParser(description='这是一个例子')
parser.add_argument('-n', '--name', help='姓名', default='john')
parser.add_argument('-a', '--age', help='年龄', type=int, default=18)

args = parser.parse_args()

print(args.name,args.age)

在上面的代码中,我们设置了--name和--age参数,以及自定义了他们的帮助消息。在我们获取参数时,如果没有传递参数,则使用默认值。

六、结语

本文详细介绍了python add_argument()函数的使用方法。通过本文的阐述,读者可以掌握如何定义、传参,以及为参数编写约束条件。除此之外,本文还介绍了如何使用组,并自定义帮助信息。这些都是argparse模块中可用的功能。这些功能可以帮助开发人员管理和编写Python的命令行界面。