美文网首页
python命令行解析模块argparse

python命令行解析模块argparse

作者: 听风1996 | 来源:发表于2018-05-15 17:23 被阅读5次

英文原文地址:
https://docs.python.org/3.4/library/argparse.html#module-argparse
https://docs.python.org/3.4/howto/argparse.html#id1

一、argparse模块

python标准库模块argparse用于解析命令行参数,编写用户友好的命令行界面,该模块还会自动生成帮助信息,并在所给参数无效时报错。
首先看一个例子:

#arg_parse.py
#coding:utf-8
import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',const=sum, default=max,
                      help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))

将上述代码保存为arg_parse.py,在命令行运行该脚本。使用-h选项可以查看帮助信息

$ python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]
Process some integers.
positional arguments:
 N           an integer for the accumulator
optional arguments:
 -h, --help  show this help message and exit
 --sum       sum the integers (default: find the max)

如果不指定–sum选项,则找出输入参数中的最大值,否则求和。

$ python prog.py 1 2 3 4
4
$ python prog.py 1 2 3 4 --sum
10

如果给出无效的参数,会给出一个错误信息:

$ python prog.py a b c
usage: prog.py [-h] [--sum] N [N ...]
prog.py: error: argument N: invalid int value: 'a'

二、ArgumentParser对象

使用argparse的第一步是创建一个 ArgumentParser对象,这个ArgumentParser对象中会保存所有将命令行参数转为python数据类型的必需信息。使用 argparse.ArgumentParser创建ArgumentParser对象

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

下面介绍上述函数几个常用的参数

1.prog

默认情况下, ArgumentParser对象根据sys.argv[0]的值(不包括路径名)生成帮助信息中的程序名。

$ cat myprogram.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo', help='foo help')
args = parser.parse_args()

$ python myprogram.py --help
usage: myprogram.py [-h] [--foo FOO]  #注意程序名

optional arguments:
 -h, --help  show this help message and exit
 --foo FOO   foo help
$ cd ..
$ python subdir\myprogram.py --help
usage: myprogram.py [-h] [--foo FOO] #注意程序名

optional arguments:
 -h, --help  show this help message and exit
 --foo FOO   foo help
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

也可以人为指定一个程序名

>>> parser = argparse.ArgumentParser(prog='myprogram')
>>> parser.print_help()
usage: myprogram [-h]        #注意程序名

optional arguments:
 -h, --help  show this help message and exit

相关文章

  • python argparse模块

    argparse是一个python中的命令行解析模块 parser = argparse.ArgumentPars...

  • Argarse教程

    本教程旨在简要介绍Python标准库中推荐的命令行解析模块 Argparse教程 argparse是Python内...

  • argparse

    argparse import argparse命令行参数解析模块简单示例 选择性添加参数 python test...

  • DL中遇到的语法问题

    python语法 1.argparse模块 python中用于命令行解析的模块。 使用方法 import argp...

  • Python | argparse

    参考:博客园 | Python解析命令行读取参数 -- argparse模块[https://www.cnblog...

  • Python学习笔记:argparse的使用

    argparse是什么? argparse是一个命令行参数解析模块,可以解析从命令行输入的内容。 argparse...

  • argparse模块

    argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块 使用步骤...

  • Python--argparse 模块

    一、简介 argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块...

  • Python argparse介绍

    argparse 模块是 Python 标准库中推荐的命令行解析模块。用来写命令行脚本十分好用。 命令行分三种情况...

  • 工具 | Python 篇 - argparse 命令行参数解析

    主题:Python 命令行参数解析。argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参...

网友评论

      本文标题:python命令行解析模块argparse

      本文链接:https://www.haomeiwen.com/subject/xkcydftx.html