我很困扰这项小活动要完成.我做了一些实验,但未能达到效果.
需求:
test2.py [-c/-v] -f
Run Code Online (Sandbox Code Playgroud)
用法或规则:
-c(比较)需要2个参数.
-v(验证)需要1个参数.
这两者中的任何一个都必须存在,但不能同时存在.
输出:
我能够得到所需的输出,如下所示
kp@kp:~/Study/scripts$ ./test.py -c P1 P2 -f p
kp@kp:~/Study/scripts$ ./test.py -v P1 -f p
kp@kp:~/Study/scripts$ ./test.py -v P1
usage: test.py <functional argument> <ouput target argument>
test.py: error: argument -f/--file is required
kp@kp:~/Study/scripts$ ./test.py -c P1 P2
usage: test.py <functional argument> <ouput target argument>
test.py: error: argument -f/--file is required
kp@kp:~/Study/scripts$
Run Code Online (Sandbox Code Playgroud)
问题是:
当您使用时test.py -h,
1 .输出不会指示-c/-v中的任何一个是强制性的,而不是两者.它表示所有参数都是可选的.
2.输出将在可选参数下指示-f选项,这是不正确的.-f是必需参数,我想显示外部 - 可选参数.
如何更改脚本以便-h选项输出更加用户友好(无需任何外部验证)
usage: test.py …Run Code Online (Sandbox Code Playgroud)