python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python  argparse

Python argparse 解析命令行参数模块详情

作者:流浪猪头拯救地球

这篇文章主要介绍了Python argparse 解析命令行参数模块详情,argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块

一、预备知识

argparsepython用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数。

1、安装

argsparsepython的命令行解析的标准模块,内置于python,不需要安装。使用的时候直接:

import argparse

2、使用的一般步骤

这个模块使用起来十分简单,就类似于 造(买)个冰箱→在冰箱里面放点食材→需要的时候把食材拿出来做出美味的食物。

它的使用分为三步:

# 1.创建一个解析对象;
parser = argparse.ArgumentParser()
# 2.然后向该对象中添加你要关注的命令行参数和选项,
#   每一个 add_argument 方法对应一个你要关注的参数或选项;
parser.add_argument()
# 3. 最后调用 parse_args()方法进行解析;
parser.parse_args()

另外,关于参数的书写习惯,有如下几种:

二、实操笔记

上面简要介绍了使用的基本步骤,下面首先详细介绍涉及到的几个函数,然后再给一个实例。

1、函数详解

1.1ArgumentParser

这个函数的作用就是创建一个解析对象(冰箱),下面是它的参数列表:

ArgumentParser(prog=None, 
usage=None,
description=None, 
epilog=None, 
parents=[],
formatter_class=argparse.HelpFormatter, 
prefix_chars='-',
fromfile_prefix_chars=None, 
argument_default=None,
conflict_handler='error', 
add_help=True)

参数含义如下所示:

1.2add_argument

此函数用来指定程序需要接受的命令参数,它的参数列表如下所示:

add_argument(name or flags...
[, action]
[, nargs]
[, const]
[, default]
[, type]
[, choices]
[, required]
[, help]
[, metavar]
[, dest])
# 注:[] 表示可选

参数含义如下:

2、调用实例

下面给个简单的示例,只是说明如何调用而已,后续可根据上面对函数的详细解释来使其更实用智能。

import argparse
parser = argparse.ArgumentParser(description ="This is a Test!")
parser.add_argument("type",choices=['scheduler','tool'],
                    help="make application type")
parser.add_argument('-c',dest='configurefile',help="configure file")
parser.print_help()
args = parser.parse_args(["tool","-c","a.ini"])
print(args.type)
print(args.configurefile)
# --------------output------------------
usage: draft.py [-h] [-c CONFIGUREFILE] {scheduler,tool}

This is a Test!

positional arguments:
  {scheduler,tool}  make application type

optional arguments:
  -h, --help        show this help message and exit
  -c CONFIGUREFILE  configure file
tool
a.ini

这个简单的例子就,就创建了一个argparse对象,然后加了两个参数(不算-h),一个是必选参数tool,另一个是可选参数-c,然后使用dest将其转换为参数的一个属性。
ps:其实一开始笔者遇到了一个问题,一开始笔者在必选参数前加了type,其实是不用的,对于必选参数直接给值即可。
另外,当有多个必选参数时,需要注意必选参数的顺序一定要和加参数的顺序保持一致。
可选参数和必选参数可以交换顺序,只需保持可选参数与值不要分开,必选参数的相对顺序与加参数的顺序保持一致即可!

到此这篇关于Python argparse 解析命令行参数模块详情的文章就介绍到这了,更多相关Python argparse内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文