我的脚本需要精确地传入两个参数。下面的第三个是我正在努力解决的。
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的新手,但我知道尝试上述方法是愚蠢的,但我还是抱着希望它会像魔法一样奇迹般地工作。 :)
能否有人帮我找到一种让无参情况工作的方法? 谢谢
arg1
和arg2
参数吗? - user2357112parser.add_argument('input', nargs=2)
- user707650arg1 arg2
是-e
或-i
标志的参数,还是像第三种情况一样是位置参数?顺序重要吗? - hpauljarg1
被视为源文件,而arg2
则是我的目标文件。-e
和-i
是标志,告诉我这些文件是模块内部还是外部的。 - Nike