python中argparse 命令行参数解析包

简介: argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广

简介

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广

使用方法

  • 导入 argparse
  • 创建 ArgumentParser 对象,可添加描述(description)信息,表明这个对象的功能
  • 添加参数处理,可添加多个
import argparse

def get_parser():
    # 创建ArgumentParser对象,里面可以添加描述信息
    parser = argparse.ArgumentParser(description="Demo of argparse")
    # 添加参数处理
    parser.add_argument('--name', default='Coolin')
    
    return parser
    
if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    name = args.name
    print('name:%s' % name)


#输出
$ python name.py --name zcy

name:zcy

参数解析

1、变量名:

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][,metavar][, dest])
  • name : 参数全名,需要加在参数上 如:python demo.py --name zcy
  • n:参数简称,可与–name同时存在
  • name 或者 dest=name:参数名,提供参数占位符,必须填写,否则报错。如:python demo.py zcy

2、default参数:提供参数默认值

3、required:默认情况下,可选项(前面有'-')被认为并不一定需要出现在命令行参数中,但是如果设置了required=True的话,则必须出现。此类设置违背人的常识,应避免使用

4、type:用于类型检查和类型转换;参数类型,默认是str ,如果需要int ,type=int即可

5、choices:参数的值只能在几个选项中选择:

# file-name: choices.py
import argparse

def get_parser():
    parser = argparse.ArgumentParser(
        description='choices demo')
    parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

    return parser

if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    print('the arch of CNN is '.format(args.arch))

6、help:指定参数的说明信息,可使用-h(–help)查看该信息

7、nargs:设置参数的个数

格式

parser.add_argument('-name', nargs=x)

x 的候选值以及含义

含义
N 参数的绝对个数(如:3)
‘?’ 0或1个参数
‘*’ 0或多个参数
‘+’ 1或者多个参数
# file-name: nargs.py
import argparse

def get_parser():
    parser = argparse.ArgumentParser(
        description='nargs demo')
    parser.add_argument('-name', required=True, nargs='+')

    return parser


if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    names = ', '.join(args.name)
    print('Hello to {}'.format(names))
#输出
$ python nargs.py -name A B C
Hello to A, B, C

8、metavar: 参数的名字,在显示 帮助信息时才用到.(帮助信息)

相关文章
|
2天前
|
XML 存储 数据格式
python path解析基础
python path解析基础
10 0
|
2天前
|
数据采集 Python
Python HTML解析详解
Python HTML解析详解
6 0
|
4天前
|
Python
在Python中快捷引入缺失包的技巧和实践
在Python中快捷引入缺失包的技巧和实践
10 0
|
4天前
|
JSON 安全 前端开发
解析FormData格式数据:Python实践指南
解析FormData格式数据:Python实践指南
12 1
|
9天前
|
域名解析 JSON API
Python小工具包
【5月更文挑战第2天】构建了一个Python小工具包,包含获取IP、域名解析、JSON格式化和时间戳转换的函数。通过`get_ip_address`和`resolve_domain`实现网络任务,`format_json`用于美化JSON数据,`timestamp_to_datetime`转换时间戳。这些函数可提高开发效率,易于整合到项目中,展现Python的简洁和灵活性。
19 1
Python小工具包
|
10天前
|
分布式计算 DataWorks 调度
DataWorks操作报错合集之DataWorks配置参数在开发环境进行调度,参数解析不出来,收到了 "Table does not exist" 的错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
23 0
|
11天前
|
Linux API Python
【python】如何通过python来发邮件,各种发邮件方式详细解析
【python】如何通过python来发邮件,各种发邮件方式详细解析
|
11天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
11天前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在开发环境中配置MaxCompute参数进行调度,但参数解析不出来,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
12天前
|
Python
使用Python解析网页和正则表达式
使用Python解析网页涉及`requests`和`re`模块。首先导入这两个模块,然后用`requests.get()`发送HTTP请求获取URL内容。通过`.text`属性得到HTML文本。接着,利用正则表达式和`re.search()`匹配特定模式(如网页标题),并用`.group(1)`获取匹配数据。最后,对提取的信息进行处理,如打印标题。实际操作时,需根据需求调整正则表达式。
13 2

推荐镜像

更多