python argparse

–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
argparsePython标准库中的一个模块,用于解析命令行参数。它提供了一种简单而灵活的方式来处理命令行参数,并生成帮助信息。 argparse模块的主要特点包括: 1. 定义参数:argparse允许你定义需要的命令行参数,并指定它们的类型、默认值、帮助信息等。 2. 解析参数:argparse可以解析命令行参数,并将它们转换为Python对象,以便在程序中使用。 3. 自动生成帮助信息:argparse可以根据你定义的参数自动生成帮助信息,包括参数的使用方法、默认值、帮助文本等。 4. 支持位置参数和可选参数:argparse支持两种类型的参数,位置参数和可选参数。位置参数是必需的,而可选参数可以根据需要选择是否提供。 下面是一个简单的示例,演示了如何使用argparse解析命令行参数: ```python import argparse # 创建ArgumentParser对象 parser = argparse.ArgumentParser(description='Process some integers.') # 添加位置参数 parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') # 添加可选参数 parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') # 解析命令行参数 args = parser.parse_args() # 打印解析结果 print(args.accumulate(args.integers)) ``` 使用上述代码,你可以在命令行中输入一系列整数,并选择是求和还是找到最大值。例如: ``` $ python myprogram.py 1 2 3 4 5 15 $ python myprogram.py 1 2 3 4 5 --sum 15 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值