我花了一些时间在 argparse 文档上,但我仍然在为我的程序中的一个选项努力使用这个模块:
parser.add_argument("-r", "--rmsd", dest="rmsd", nargs=2,
help="extract the poses that are close from a ref according RMSD",
metavar=("ref","rmsd"))
我希望第一个参数是一个字符串(str
类型)并且是必需的,而第二个参数应该是 int
类型,如果没有值给定一个默认值(假设 default=50
)。我知道当只有一个参数时该怎么做,但我不知道当 nargs=2 时如何继续......这甚至可能吗?
最佳答案
您可以执行以下操作。 required
关键字将字段设置为必填,如果未指定,default=50
将选项的默认值设置为 50:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-s", "--string", type=str, required=True)
parser.add_argument("-i", "--integer", type=int, default=50)
args = parser.parse_args()
print args.string
print args.integer
输出:
$ python arg_parser.py -s test_string
test_string
50
$ python arg_parser.py -s test_string -i 100
test_string
100
$ python arg_parser.py -i 100
usage: arg_parser.py [-h] -s STRING [-i INTEGER]
arg_parser.py: error: argument -s/--string is required
关于Python,argparse : how to have nargs=2 with type=str and type=int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16959101/