python argparse

来源:互联网 发布:js实现链表数据结构 编辑:程序博客网 时间:2024/06/01 08:51

–help标签

–help标签在使用argparse模块时会自动创建,一般情况不需要我们主动定义帮助信息。

positional arguments

位置参数与sys.argv调用比较像,参数没有显式的–xxx或者-xxx标签。位置参数都是required的。

parser.add_argument('filename')  # 运行时第一个参数赋予名为filename的键args = parser.parse_args()print "Read in %s" %(args.filename)

执行python test.py test.txt则会输出Read in test.txt

位置参数较简单,但因为位置固定,且必须有,不够灵活。

标签参数应用的更广泛。

help

参数作用解释

parser.add_argument('-s', dest='server', type=str, required=False, default='localhost:8080', help=u'服务地址')

required

参数是否为必需的,默认为False。required不能用于位置参数。

parser.add_argument('-v', '--verbose', type=str, required=True)

上述代码中-v与–verbose可以同时使用。

nargs

限定输入的位置参数或者带标签参数的个数,默认为1。

parser.add_argument('num', nargs=2, type=int)表示脚本可以读入两个整数赋予num键(此时的值为2个整数的数组)。

nargs取值如下:
N
‘*’ 表示如果有该位置参数输入的话,之后所有的输入都将作为该位置参数的值
‘?’ 表示该位置参数要么没有,要么就只要一个
‘+’ 表示读取至少1个该位置参数

type

参数类型,如果执行时类型不符则报错。默认为str

type还可以表示文件操作的类型从而直接进行文件的读写操作。

parser.add_argument('file', type=argparser.FileType('r'))  # 读取文件args = parser.parse_args()for line in args.file:    print line.strip()

default

参数默认值,执行时没有该参数时则使用默认值。

parser.add_argument('filename', default='text.txt')

执行python text.py就能得到Read in text.txt而不需要输入文件名了。

dest

参数在程序中对应的变量名称

parser.add_argument('a', dest='code_name')

choices

参数能接受的值只能来自指定的候选值,否则会报错:

parser.add_argument('filename', choices=['test1.txt', 'text2.txt'])

action

store:默认action模式,存储值到指定变量。
store_const:存储值在参数的const部分指定,多用于实现非布尔的命令行flag。
store_true / store_false:布尔开关。 store_true.默认为False,输入则为true。 store_flase 相反
append:存储值到列表,该参数可以重复使用。
append_const:存储值到列表,存储值在参数的const部分指定。
count: 统计参数简写输入的个数 add_argument(“-c”, “–gc”, action=”count”)
version 输出版本信息然后退出。

const

配合action=”store_const|append_const”使用,默认值

metavar

这个参数用于 help 信息输出中

The name to be used for the option’s argument with the help string. If None, the ‘dest’ value will be used as the name.

参数的几种写法

最常见的空格分开:

-x X--foo FOO

长选项用=分开:

--foo=FOO

短选项可以写在一起:

-xX
0 0
原创粉丝点击