Python2.7-argparse
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的更多相关文章
- (原+转)pycharm中传入命令行参数
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5670821.html 参考网址: http://zhidao.baidu.com/question/5 ...
- openstack高可用集群19-linuxbridge结合vxlan
生产环境,假设我们的openstack是公有云,我们一般的linuxbridge结合vlan的模式相对于大量的用户来说是vlan是不够用的,于是我们引进vxlan技术解决云主机内网网络通讯的问题. 我 ...
- [记录]Python2.7使用argparse模块
# -*- coding: utf8 -*- import argparse #ArgumentParser.add_argument(name or flags-[, action][, nargs ...
- argparse - 命令行选项与参数解析(转)
argparse - 命令行选项与参数解析(译)Mar 30, 2013 原文:argparse – Command line option and argument parsing 译者:young ...
- Python之argparse模块
argparse 命令行参数解析模块,原optparse已经停止开发,建议替换为argparse 在python2.7后默认加入 parser ArgumentParser默认解析来源sys.argv ...
- Python中最好用的命令行解析工具:argparse
Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...
- 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存(argparse详细解释)
将下面文档存为load_display_save.py #-*- coding:utf-8 -*- ap = argparse.ArgumentParser() ap.add_argument(&qu ...
- argparse - 命令行选项与参数解析
argparse模块作为optparse的一个替代被添加到Python2.7.argparse的实现支持一些不易于添加到optparse以及要求向后不兼容API变化的特性,因此以一个新模块添加到标准库 ...
- 基于python2+selenium3+pytest4的UI自动化框架
环境:Python2.7.10, selenium3.141.0, pytest4.6.6, pytest-html1.22.0, Windows-7-6.1.7601-SP1 特点:- 二次封装了s ...
- python argparse总结
python2.7废除optparse,原因:http://code.google.com/p/argparse/ 说了半天好像是重开了个小号练级 抓紧写下来一会又得忘了 用法: import arg ...
随机推荐
- java 实现多重继承
java提高篇(九)-----实现多重继承 接口 多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承.有些时候我们会认为如果系统中需要 ...
- python正则表达式3-模式匹配
re.S,使 '.' 匹配换行在内的所有字符 >>> pattern=r'ghostwu.com' >>> import re >>> re.f ...
- DRF序列化/反序列化
反序列化(不推荐版):两个字段 一个为正序准备,一个为反序准备重写create update方法 1. 确定数据结构: 自己定义key book_obj = { "title": ...
- JS之ClassName属性使用
一.style与className属性的对比 在前面的style属性学习中,知道了通过style属性可以控制元素的样式,从而实现了行为层通过DOM的style属性去干预变现层显示的目地,但是这种就是不 ...
- 【代码笔记】iOS-手机系统版本
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...
- C#反射的一些经验[转载]
写代码的时候经常需要分析已有类型的信息例如:分析现有类型自动生成类, 或者为现有的类自动增加一些功能总结了一点点经验以ClassA a; 为例1. 通过typeof(ClassA) 或者 a.Get ...
- 在JavaScript文件中用ajax方法实现省市区的三级联动
1.JavaScript Document $(document).ready(function(e) { 加载三个下拉列表 $("#sanji").html("< ...
- openCV 扩图
1.扩图 import cv2 import numpy as np img=cv2.imread('Test2.jpg',1) width=img.shape[0] height=img.shape ...
- ecsop文件结构
Ecshop文件结构 :ecshop二次开发手册,ECSHOP文件结构,ECSHOP目录详解 /*ECShop 最新程序 的结构图及各文件相应功能介绍ECShop文件结构目录┣ activity.ph ...
- [Synology] [群晖] 关闭被占用的文件
1. Control Panel: Control Panel > Terminal & SNMP Enable SSH service 2. SSH into Synology 3. ...