Python笔记:命令行参数解析

Python017

Python笔记:命令行参数解析,第1张

有些时候我们需要通过命令行参数传递给脚本,C语言中有个getopt()方法,python中也有个类似的命令行参数解析方法getopt()。python也提供了比getopt()更简洁的argparse方法。另外,sys模块也可以实现简单的参数解析,本文将对这3种命令行参数解析方法简要介绍。

sys.argv是传入的参数列表,sys.argv[0]是当前python脚本的名称,sys.argv[1]表示第一个参数,以此类推。

命令行运行:

可以看到传入的参数通过sys.argv来获取,它就是一个参数列表。

python的getopt与C语言的的getopt()函数类似。相比于sys模块,支持长参数和短参数,并对参数解析赋值。但它需要结合sys模块进行参数解析,语法格式如下:

短参数为单个英文字母,如果必须赋值需要在后面加英文冒号( : ),长参数一般为字符串(相比短参数,更能说明参数含义),如果必须赋值需要在后面加等号( = )。

命令行运行:

注意:短参数(options)和长参数(long_options)不需要一一对应,可以任意顺序,也可以只有短参数或者只有长参数。

argparse模块提供了很多可以设置的参数,例如参数的默认值,帮助消息,参数的数据类型等。argparse类主要包括ArgumentParser、add_argument和parse_args三个方法。

下面介绍这三个函数的使用方法。

argparse默认提供了 -h | --help 参数:

命令行运行:

下面列出部分参数:

下面来添加参数:

命令行运行:

parse_args() 方法用于解析参数,在前面的示例代码中使用parse_args方法来提取参数值,对于无效或者错误的参数会打印错误信息和帮助信息:

命令行运行:

本文介绍了Python的三种命令行参数解析方法sys.argv、getopt和argparse,可以根据自己的需要进行选择,getopt和argparse两种方法相比来说,建议选择argparse,代码量更少更简洁。更详细的使用方法参考官方文档:

--THE END--

如果您想写一个命令行程序,可以使用Python的argparse模块来实现。argparse模块提供了一组简单而强大的命令行解析工具,可以让您快速构建复杂的命令行程序。

下面是一个简单的例子,展示了如何使用argparse模块来定义命令行参数:

在上面的代码中,我们首先导入argparse模块,然后创建一个ArgumentParser对象,并使用add_argument()方法来定义命令行参数。其中,第一个参数是参数的名字,第二个参数是参数的别名,help参数用来指定帮助信息,type参数用来指定参数的类型。

在这个例子中,我们定义了两个参数:name和age,分别表示用户的名字和年龄。您可以在命令行中使用

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-n', '--name', help='Your name')

parser.add_argument('-a', '--age', type=int, help='Your age')

args = parser.parse_args()

print('Hello, {}! You are {} years old.'.format(args.name, args.age))

1、python命令行接收参数

1.1 脚本编写

1.2 配置文件

其中config_env文件内容,其中注意[env]字段是在cfg.get时使用

1.3 命令行输入为

2、pytest命令行自定义参数

2.1 定义conftest.py文件

生效范围,放在工程根目录会起到全局作用,在不同的测试子目录也可以放conftest.py,作用范围只在该层级以及以下目录生效

文件内容

2.2 测试用例变更

2.3 命令行输入