• 默认参数

ArgumentParser.set_defaults(**kwargs)

set_defaults()可以设置一些参数的默认值

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('foo', type=int)
>>> parser.set_defaults(bar=123, baz='test')
>>> parser.parse_args(['456'])
Namespace(bar=123, baz='test', foo=456)

解析器级别的默认值会覆盖参数级别的默认值

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', default='bar')
>>> parser.set_defaults(foo='test')
>>> parser.parse_args([])
Namespace(foo='test')

get_defaults()方法可以获取add_argument()和set_defaults()中设置的默认值

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', default='bar')
>>> parser.set_defaults(air='test')
>>> parser.get_default('air')
'test'
>>> parser.get_default('foo')
'bar'
  • 参数部分使用

如果脚本只使用所传参数中的几个参数,要把其他的参数传给其他脚本,可以使用parse_known_args()方法

ArgumentParser.parse_known_args(args=None, namespace=None)

它的工作方式与parse_args()非常相似,只是在出现额外的参数时不会产生错误,而是返回一个包含填充名称空间和剩余参数字符串的元组和列表

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('bar')
parser.add_argument('-t','--thread')
args = parser.parse_known_args()
if args:
print(args)

运行结果

前缀匹配规则适用于parse_known_args()

  • 打印帮助

ArgumentParser.parse_args()

格式化和打印任何使用或错误消息

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('bar')
>>> parser.parse_args()
usage: [-h] bar
: error: the following arguments are required: bar

还有几种格式化的方法

ArgumentParser.print_usage(file=None)

打印一个关于如何在命令行上调用ArgumentParser的简要说明

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.print_usage()
usage: [-h] [--foo FOO]

如果文件是None,则为sys.stdout

ArgumentParser.print_help(file=None)

打印帮助信息,包括程序使用方法和有关使用ArgumentParser的参数信息

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.print_help()
usage: [-h] [--foo FOO] optional arguments:
-h, --help show this help message and exit
--foo FOO

如果文件是None,则为sys.stdout

ArgumentParser.format_usage()

返回一个字符串,而不是打印,其中包含如何在命令行上调用ArgumentParser的简要说明

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.format_usage()
'usage: [-h] [--foo FOO]\n'

还有一个也是返回字符串的方法

ArgumentParser.format_help()

返回一个包含帮助信息的字符串,包括程序用法以及有关使用ArgumentParser的参数信息

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.format_help()
'usage: [-h] [--foo FOO]\n\noptional arguments:\n -h, --help show this help message and exit\n --foo FOO\n'
  • 退出方法

ArgumentParser.exit(status=0, message=None)

此方法终止程序,以指定状态退出,如果给定,则在此之前打印消息

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.exit(message='test')
test

然后脚本就直接退出了

ArgumentParser.error(message)

此方法将包含消息的使用消息打印到标准错误,并终止状态码为2的程序

>>> parser = argparse.ArgumentParser()
>>> parser.error(message='run error')
usage: [-h]
: error: run error

打印完错误信息后脚本就直接退出了

Python命令模块argparse学习笔记(四)的更多相关文章

  1. Python命令模块argparse学习笔记(二)

    argparse模块可以设置两种命令参数,一个是位置参数,一个是命令参数 位置参数 import argparse parser = argparse.ArgumentParser(descripti ...

  2. Python命令模块argparse学习笔记(一)

    首先是关于-h/--help参数的设置 description:位于help信息前,可用于描述helpprog:描述help信息中程序的名称epilog:位于help信息后usage:描述程序的用途a ...

  3. Python命令模块argparse学习笔记(三)

    参数组 ArgumentParser.add_argument_group(title=None, description=None) 默认情况下,当显示帮助消息时,ArgumentParser将命令 ...

  4. 基于python实现自动化办公学习笔记四

    PPT(1)写PPT import win32comimport win32com.client def makeppt(path): ppt = win32com.client.Dispatch(& ...

  5. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

  6. python3.4学习笔记(四) 3.x和2.x的区别,持续更新

    python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...

  7. $《利用Python进行数据分析》学习笔记系列——IPython

    本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...

  8. kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  9. Linux学习笔记(四) vi编辑器

    一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...

随机推荐

  1. Windows磁盘MBR结构详解

    在之前的文章 Windows存储管理之磁盘结构详解 中介绍了Windows的磁盘结构和MBR.本文将对Windows Basic Disk中的MBR的结构进行介绍,帮助读者更好的了解Windows系统 ...

  2. DevOps means no Ops!

    DevOps means no Ops! 只单纯地搞网络的话或许你可以搞得非常好,并且获得不错的薪资,不过,5年后~10年后~,那时候随便一个人经过简单的学习就能通过Web界面或者专用的工具就能搞定一 ...

  3. 每天一个Linux命令(8)cat命令

    cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令. 注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容.因此,一般用more等命 ...

  4. debian下为stm32f429i-discovery编译uboot

    交叉编译器:arm-uclinuxeabi-2010q1 交叉编译器下载下来后解压,然后将其中bin文件夹路径加入到PATH变量中. 先下载uboot和linux源码: git clone https ...

  5. Logstash添加Protobuf解析插件

    logstash收集日志时,日志部分是由google的protobuf工具打印的,直接利用json解析会造成部分无法解析的问题 搜索后发现有个logstash的protobuf插件 在logstash ...

  6. C# 中获取CPU序列号/网卡mac地址

    1.cpu序列号2.mac序列号3.硬盘id在给软件加序列号时这三个应该是最有用的,可以实现序列号和机器绑定,对保护软件很有好处.哈哈.   using System; using System.Ma ...

  7. MapReduce修改输出的文件名

    MapReduce默认输出的文件名称格式如下:part-r-00000 自定义名称,比如editName,则输出的文件名称为:editName-r-0000,此方法没有彻底修改整个文件名,只修改了一部 ...

  8. stdcall、cdecl详解(以及WINAPI和CALLBACK之类的宏对应什么)

    转自:http://blog.csdn.net/huanjieshuijing/article/details/5822942 对_stdcall 的理解在C语言中,假设我们有这样的一个函数:int ...

  9. Oracle的权限管理

    --授予系统权限语法 grant system_privilege | all privileges --可以设置select any dictionary权限之外的索引系统权限 to {user i ...

  10. Python- 贪婪与非贪婪

    python运行匹配时,如果没有人为限定,默认是贪婪模式. import re a = 'python 22222java34bigdata' r = re.findall('[a-z]{3}',a) ...