python argparse:默认标志

时间:2016-02-04 01:05:02

标签: python python-3.x

我的脚本只需要两个参数。下面的第三个是我正在努力的。

python myscript -e arg1 arg2

python myscript -i arg1 arg2

python myscript arg1 arg2

我可以很容易地使用argparse让前两个工作,但我无法弄清楚如何让第三个使用argparse。基本上,当没有指定标志时,我想进行与指定的-e标志相同的处理。如果没有指定2个参数,脚本应该输出错误。

我检查了python文档,看到有一种方法可以为一个标志指定一个默认值,但我找不到一种方法来自己创建参数;默认的。

parser.add_argument('',nargs=2)

虽然是python的新手,但我知道尝试上述事情是愚蠢的,但不知怎的,希望它能够神奇地起作用。 :)

有人可以帮助我找到让无争议案件发挥作用的方法吗? 感谢

1 个答案:

答案 0 :(得分:2)

只需添加arg1arg2所需的位置参数:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-e', action='store_true')
parser.add_argument('-i', action='store_true')
parser.add_argument("arg1")
parser.add_argument("arg2")

args = parser.parse_args()
print(args)

用法:

$ python test.py value1 value2 --help
usage: test.py [-h] [-e] [-i] arg1 arg2

positional arguments:
  arg1
  arg2

optional arguments:
  -h, --help  show this help message and exit
  -e
  -i