python argparse模块--转载
add_argument:读入命令行参数,该调用有多个参数
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name or flags:是必须的参数,该参数接受选项参数或者是位置参数(一串文件名)
- >>> parser.add_argument('-f', '--foo') #选项参数
- >>> parser.add_argument('bar') #位置参数
nargs: 当选项后接受多个或者0个参数时需要这个来指定
比如-u选项接受2个参数
- >>> parser.add_argument('-u',nargs=2)
- >>> parser.parse_args('-u a b'.split())
- Namespace(u=['a', 'b'])
当选项接受1个或者不需要参数时指定nargs=’?',当没有参数时,会从default中取值。对于选项参数有一个额外的情况,就是出现选项而后面没有跟具体参数,那么会从const中取值
- >>> parser.add_argument('-u',nargs='?')
- >>> parser.parse_args(''.split())
- Namespace(u=None)
- >>> parser.parse_args('-u a'.split())
- Namespace(u='a')
- >>> parser.add_argument('-u',nargs='?',default='d')
- >>> parser.add_argument('A',nargs='?',default='e')
- >>> parser.parse_args(''.split())
- Namespace(A='e', u='d')
- >>> parser.parse_args('-u'.split())
- Namespace(A='e', u=None)
- >>> parser.add_argument('-u',nargs='?',default='d',const='s')
- >>> parser.add_argument('A',nargs='?',default='T',const='P')
- >>> parser.parse_args(''.split())
- Namespace(A='T', u='d')
- >>> parser.parse_args('-u'.split())
- Namespace(A='T', u='s')
- >>> parser.parse_args('A'.split())
- Namespace(A='A', u='d')
而对于后面需要跟多个参数的情况(–foo a1 a2 a3…),则需要设置nargs=’*’
- >>> parser.add_argument('-u',nargs='*')
- >>> parser.parse_args('-u a b c d e'.split())
- Namespace(u=['a', 'b', 'c', 'd', 'e'])
nargs=’+'也和nargs=’*'一样,但是有一个区别当’+'时少于1个参数(没有参数)位置参数会报错误
- >>> parser.add_argument('u',nargs='+')
- >>> parser.parse_args(''.split())
- usage: [-h] u [u ...]
- : error: too few arguments
而‘*’会使用默认值
- >>> parser.add_argument('u',nargs='*',default='e')
- >>> parser.parse_args(''.split())
- Namespace(u='e')
default: 当参数需要默认值时,由这个参数指定,默认为None,当default=argparse.SUPPRESS时,不使用任何值
- >>> parser.add_argument('u',nargs='*',default=argparse.SUPPRESS)
- >>> parser.parse_args(''.split())
- Namespace()
type: 使用这个参数,转换输入参数的具体类型,这个参数可以关联到某个自定义的处理函数,这种函数通常用来检查值的范围,以及合法性
- >>> parser.parse_args('-u',type=int)
- >>> parser.add_argument('f',type=file)
- >>> parser.parse_args('-u 2 aa'.split())
- Namespace(f=<open file 'aa', mode 'r' at 0x8b4ee38>, u=2)
choices: 这个参数用来检查输入参数的范围
- >>> parser.add_argument('-u',type=int,choices=[1,3,5])
- >>> parser.parse_args('-u 3'.split())
- Namespace(u=3)
- >>> parser.parse_args('-u 4'.split())
- usage: [-h] [-u {1,3,5}]
- : error: argument -u: invalid choice: 4 (choose from 1, 3, 5)
required: 当某个选项指定需要在命令中出现的时候用这个参数
- >>> parser.add_argument('-u',required=True)
- >>> parser.parse_args(''.split())
- usage: [-h] -u U
- : error: argument -u is required
help: 使用这个参数描述选项作用
- >>> parser.add_argument('-u',required=True,default='wowo',help='%(prog)s for test sth(default: %(default)s)')
- >>> parser.print_help() usage: [-h] -u U
- optional arguments:
- -h, --help show this help message and exit
- -u U for test sth(default: wowo)
dest: 这个参数相当于把位置或者选项关联到一个特定的名字
- >>> parser.add_argument('--str',nargs='*')
- >>> parser.parse_args('--str a b c'.split())
- Namespace(str=['a', 'b', 'c'])
- >>> parser.add_argument('--str',nargs='*',dest='myname')
- >>> parser.parse_args('--str a b c'.split())
- Namespace(myname=['a', 'b', 'c'])
metavar: 这个参数用于help 信息输出中
- >>> parser.add_argument('--str',nargs='*',metavar='AAA')
- >>> parser.print_help()
- usage: [-h] [--str [AAA [AAA ...]]]
- optional arguments:
- -h, --help show this help message and exit
- --str [AAA [AAA ...]]
- >>> parser.add_argument('str',nargs='*',metavar='AAA')
- >>> parser.print_help()
- usage: [-h] [AAA [AAA ...]]
- positional arguments:
- AAA
- optional arguments:
python argparse模块--转载的更多相关文章
- Python argparse 模块
Python argparse 模块 test.py: import argparse argparser = argparse.ArgumentParser(add_help=False) argp ...
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
- python argparse模块解析命令行选项简单使用
argparse模块的解析命令行选项简单使用 util.py #!/usr/bin/env python # coding=utf-8 import argparse parser = argpars ...
- Python Argparse模块
argparse模块 在Python中,argparse模块是标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块.argparse模块能够根据程序中的定义从sys.argv中解析 ...
- python argparse模块:命令行选项及参数解析
位置参数:给一个例子: import argparse parser = argparse.ArgumentParser() parser.add_argument("echo") ...
- 聊聊Python ctypes 模块(转载)
https://zhuanlan.zhihu.com/p/20152309?columnSlug=python-dev 作者:Jerry Jho链接:https://zhuanlan.zhihu.co ...
- Python argparse模块实现模拟 linux 的ls命令
python 模拟linux的 ls 命令 sample: python custom_ls.py -alh c:/ 选项: -a ,--all 显示所有文件,包括'.'开头的隐藏文件 -l 列表显 ...
- python argparse模块的使用
import argparse def get_parse(): # 初始化 parse = argparse.ArgumentParser() # 添加选项,类型为str,默认为空 parse.ad ...
- Python标准模块--argparse
1 模块简介 你一定很奇怪Python是如何命令行中的变量的吧?argparse就是用来解决这个问题的,argparse是optparse的替代. 2 模块使用 2.1 开始 我发现解释一个编程的概念 ...
随机推荐
- 使用pssh进行并行批量操作
假如同时给上千台服务器执行一个命令,拷贝一个文件,杀一个进程等,有什么简化运维管理的工具呢?在小型使用中我都是使用for循 环,数量巨大,一方面不确定操作是否成功,一方面for循环语句性能不好估计且是 ...
- IP设置-内置服务器-外置服务器
HBulider 中 运行 -> 设置web服务器 -> 内置服务器将 127.0.0.1 换为局域网的ip,可以在局域网内所有电脑,手机上浏览页面.但是只能浏览html,php asp等 ...
- Python OS模块重要知识点
Python OS模块重要知识点 这几点很重要,主要是关于文件路径,我之前踩了很多坑,今天总结一下,方便以后能够避免与path相关的各种坑! 1,首先我们想获取某个文件夹下面的所有文件夹以及文件(不包 ...
- 浅谈Android View的定位
引言 今天我们来介绍Android坐标系统和View的定位,当然也会介绍View的滑动相关话题.下面让我们开始介绍吧. View的基础知识 View是Android中所有控件的基类,无论是TextVi ...
- http协议基础(十一)http与https
一.http的缺点 之前有介绍过http协议相关的一些知识,http是相当优秀和方便的,但它也有缺点,主要不足表现在如下几个方面: △ 通信使用明文(不加密),内容可能会被窃听 △ 不验证通信方的身份 ...
- 527D Clique Problem 判断一维线段没有两辆相交的最大线段数量
这题说的是给了n个位置 在x轴上 每个位置有一个权值为wi,然后将|xi - xj|>=wi+wj ,满足这个条件的点建一条边,计算着整张图中有多少多少个点构成的子图,使得这个子图的节点数尽量的 ...
- python socket编程函数介绍
网上看到一个socket中常用函数的介绍,记录一下 https://blog.csdn.net/rebelqsp/article/details/22109925
- Linux基础命令---bunzip2
bunzip2 解压缩bzip2压缩过的文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 bunzip2 ...
- Ajax jquery的库的简化版本
Ajax jquery的库的简化版本 (function(){ //面向外界的唯一变量接口! var myajax = window.myajax = {}; //作者.版本号等等信 ...
- js监听页面是否在浏览器当前页面
在最近的一个socket项目中,需要监听客户端是否已读客服端发送的消息. 这里用到了html5中document新增了一个事件 visibilitychange,这个事件在页面前台或后台切换时被触发, ...