相关疑难解决方法(0)

如何在python中编写argparse组合选项

我很困扰这项小活动要完成.我做了一些实验,但未能达到效果.

需求:

   test2.py [-c/-v] -f
Run Code Online (Sandbox Code Playgroud)

用法或规则:

  1. -c(比较)需要2个参数.

    -v(验证)需要1个参数.

    这两者中的任何一个都必须存在,但不能同时存在.

  2. -f是必需参数(输出文件名).

输出:

我能够得到所需的输出,如下所示

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)

python argparse

18
推荐指数
2
解决办法
2万
查看次数

标签 统计

argparse ×1

python ×1