我的脚本只需要两个参数。下面的第三个是我正在努力的。
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的新手,但我知道尝试上述事情是愚蠢的,但不知怎的,希望它能够神奇地起作用。 :)
有人可以帮助我找到让无争议案件发挥作用的方法吗? 感谢
答案 0 :(得分:2)
只需添加arg1
和arg2
所需的位置参数:
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