argparse模块,用于方便地编写用户友好的命令行接口,可以自动生成帮助信息,用法信息和错误处理

1、模块对象

1.1 ArgumentParser 对象

1.1.1 初始化构建类: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)

参数设置:
prog:程序的名字,默认为 sys.argv[0],即 py 文件名字
usage:一个描述程序的用法的字符串,默认包含所有加进去的参数
description:最常用的属性,简单描述程序的用处和用法,在 usage 和具体帮助之间显示,默认为 none
epilog:放在帮助后面的字符串,默认为 none
parents:一个 ArgumentParser 对象的列表,这些对象里的参数也会被包含进来,用于有许多共享的参数,类似继承,需要把这些父对象的 add_help 属性设为 False
formatter_class:设置控制帮助信息输出的类,默认会自动换行,有
      argparse.RawDescriptionHelpFormatter:不自动换行,怎么输入怎么输出
      argparse.RawTextHelpFormatter:保留所有空格,但会把多个连续换行合成为一个
      argparse.ArgumentDefaultsHelpFormatter:在帮助信息里加上默认值
prefix_chars:控制命令行命令前的符号,默认 ‘-‘,可以自定义
fromfile_prefix_chars:当程序所需参数较多时可以从文件读入,这时可以设置这个属性识别文件,在指定字符后的参数就视为文件打开读取参数,默认为 None
argument_default:参数的全局默认属性,默认为 None
conflict_handler:设置为‘resolve’可以覆盖相同名字的操作,否则会报错,一般不使用
add_help:添加 -h/--help 操作,默认 True

1.1.2 实例方法

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]):
参数设置:
name or flags:如果添加可选参数,则在前面加上‘-’或是自定义的前缀字符(prefix_chars),否则认为是定位参数(positional)即必须的参数
action:设置此参数被调用时的操作,有'store','store_const','store_true','store_false','append','append_const','count','help','version',可以自定义
nargs:每个操作需要的参数个数,有 N,'?','*','+',argparse.REMAINDER
const:设置不从命令行读取但是后续操作需要的常数,默认为 none
default:设置可以不从命令行读取的默认值,默认为 none
type:转换命令行的字符串至指定格式,支持所有内置类型,还有文件操作 argparse.FileType('r,w'),所有自定义的以一个字符串为参数返回转换后的值的可调用对象都可以
choices:包含所有支持的参数,不在这个范围内会报错,可以控制输入
required:设置可选参数是否为必选,避免使用
help:设置帮助信息,支持格式化字符串,argparse.SUPPRESS 会在显示帮助时隐藏对应的操作
metavar:设置帮助信息里各个参数的别名
dest:设置命令行里获得的参数存放到哪个属性中

parse_args(args=None, namespace=None):
参数设置:
args:要解析的字符串列表,默认从 sys.argv 获得
namespace:存放获得的属性的一个对象

add_subparsers([title][, description][, prog][, parser_class][, action][, option_string][, dest][, help][, metavar]):通常不设置参数,返回一个有特定操作的对象
参数设置:
title:帮助中的名字
description:帮助中的描述
prog:使用信息
parser_class:指定从哪个父类中创建子对象
action、dest、help、metavar:同上

set_defaults(**kwargs):设置默认值
get_default(dest):获得 dest 的默认值
print_usage(file=None):输出 usage 信息
print_help(file=None):输出帮助信息

Python2.7-argparse的更多相关文章

  1. (原+转)pycharm中传入命令行参数

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5670821.html 参考网址: http://zhidao.baidu.com/question/5 ...

  2. openstack高可用集群19-linuxbridge结合vxlan

    生产环境,假设我们的openstack是公有云,我们一般的linuxbridge结合vlan的模式相对于大量的用户来说是vlan是不够用的,于是我们引进vxlan技术解决云主机内网网络通讯的问题. 我 ...

  3. [记录]Python2.7使用argparse模块

    # -*- coding: utf8 -*- import argparse #ArgumentParser.add_argument(name or flags-[, action][, nargs ...

  4. argparse - 命令行选项与参数解析(转)

    argparse - 命令行选项与参数解析(译)Mar 30, 2013 原文:argparse – Command line option and argument parsing 译者:young ...

  5. Python之argparse模块

    argparse 命令行参数解析模块,原optparse已经停止开发,建议替换为argparse 在python2.7后默认加入 parser ArgumentParser默认解析来源sys.argv ...

  6. Python中最好用的命令行解析工具:argparse

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...

  7. 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存(argparse详细解释)

    将下面文档存为load_display_save.py #-*- coding:utf-8 -*- ap = argparse.ArgumentParser() ap.add_argument(&qu ...

  8. argparse - 命令行选项与参数解析

    argparse模块作为optparse的一个替代被添加到Python2.7.argparse的实现支持一些不易于添加到optparse以及要求向后不兼容API变化的特性,因此以一个新模块添加到标准库 ...

  9. 基于python2+selenium3+pytest4的UI自动化框架

    环境:Python2.7.10, selenium3.141.0, pytest4.6.6, pytest-html1.22.0, Windows-7-6.1.7601-SP1 特点:- 二次封装了s ...

  10. python argparse总结

    python2.7废除optparse,原因:http://code.google.com/p/argparse/ 说了半天好像是重开了个小号练级 抓紧写下来一会又得忘了 用法: import arg ...

随机推荐

  1. HDU4662(SummerTrainingDay03-B)

    MU Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. Mac安装Vue-cli时 提示bash: vue: command not found问题

    1:   首先执行sudo npm install --global vue-cli 2: 复制的路径地址为添加环境变量的地址 3:添加环境变量   export PATH="$PATH:( ...

  3. SQL SERVER 将表字段值0和1互转的几种方法

    需求: 如果表字段的值为 0 则将其修改为1 ,如果表字段的值为 1 则将其修改为 0. 方法一 end 方法二 ) 方法三 )

  4. Python+Selenium笔记(九):操作警告和弹出框

    #之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一 ...

  5. Python Word2Vec使用训练好的模型生成词向量

    # 文本文件必须是utf-8无bom格式 from gensim.models.deprecated.word2vec import Word2Vec model = Word2Vec.load( ' ...

  6. GenyMotion the virtual device got no ip address 问题解决

    不要再找答案了 升级你的virtual box到最新版本(目前是 5.0.26,已通过) 如果你是windows 10系统 必须关闭hyper-v 在管理员命令行下运行bcdedit /set hyp ...

  7. CSS 小结笔记之解决flex布局边框对不齐

    在使用flex 进行伸缩布局的时候,经常会给子盒子设置边框,这时经常会出现上下边框对不齐的情况.本篇文章来探讨并解决这个问题. 具体出现的问题如下图所示 具体代码如下 <!DOCTYPE htm ...

  8. 使用thumbnailator不按照比例,改变图片的大小

    我们在平时的开发中,偶尔也会遇到图片处理的问题,比如图片的压缩,按比例改变图片的大小,不按比例改变图片的大小等等. 如果要自己去开发这样一套工具,我觉得大多数人都是做不到的,所以还是学会站在巨人的肩膀 ...

  9. 文档撰写思路与排版(hadoop)

    这几天在写项目提交的几个报告,写完回想了一下,在写作框架确定与排版上浪费了不少时间,特此总结一下思路. 这个写完回家过年了....emmmm 1. 定好大标题框架,使用自动添加序号,先不着急修改样式 ...

  10. SQL Server复制入门(二)----复制的几种模式 (转载)

    简介本系列文章的上一篇对复制是什么做了一个概述.本篇文章根据发布服务器,分发服务器和订阅服务器的组织方式和复制类型来讲述常用复制的几种模式. 模式的选择选择复制的模式取决于多个方面.首先需要考虑具体的 ...