相关疑难解决方法(0)

Python的optparse可以显示选项的默认值吗?

有没有办法在显示帮助--help时使Python的optparse打印成为选项或标志的默认值?

python optparse

43
推荐指数
3
解决办法
4243
查看次数

自定义argparse帮助消息

我编写了以下示例代码来演示我的问题.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-v', '--version', action='version',
                    version='%(prog)s 1.0')
parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

这会产生以下帮助信息.

$ python foo.py --help
usage: foo.py [-h] [-v]

optional arguments:
  -h, --help     show this help message and exit
  -v, --version  show program's version number and exit
Run Code Online (Sandbox Code Playgroud)

我想自定义此帮助输出,以便将所有短语和句子大写,并将句点放在句子之后.换句话说,我希望像这样生成帮助消息.

$ python foo.py --help
Usage: foo.py [-h] [-v]

Optional arguments:
  -h, --help     Show this help message and exit.
  -v, --version  Show program's version number and exit.
Run Code Online (Sandbox Code Playgroud)

这是我可以使用argparse API控制的东西.如果是这样,怎么样?能否请您提供一个小例子来说明如何做到这一点?

python argparse python-3.x

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

为什么我的 argparse 不显示默认值?

根据这个问题,当我输入时,这个名为“parse_fail.py”的脚本应该打印 default=1:

python parse_fail.py --help 
Run Code Online (Sandbox Code Playgroud)

在命令行上,但它没有。为什么不?

#parse_fail.py

import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("--test", type=int, dest='test', default=1)
parser.parse_args()
args_dict = vars(parser.parse_args())
locals().update(args_dict)
print test
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本时,我得到:

$ python parser_fail.py  --help
usage: parser_fail.py [-h] [--test TEST]

optional arguments:
  -h, --help   show this help message and exit
  --test TEST
Run Code Online (Sandbox Code Playgroud)

编辑:添加了脚本的输出。

python argparse

5
推荐指数
1
解决办法
2548
查看次数

Argparse:子解析器未显示默认值

我遇到的问题是,在使用 argparse Python 包通过 add_argument 为子解析器指定参数时,我没有看到任何参数的默认值。

一些研究表明,您需要为每个 add_argument 步骤设置非空帮助参数,并且需要 ArgumentDefaultsHelpFormatter 作为 formatter_class,如下所述:

Argparse:在“--help”中包含默认值的方法?

然而,这对我不起作用。我怀疑以某种方式抑制了子解析器默认值。

下面是一个例子:

from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter

parser = ArgumentParser(description="Sample script", formatter_class=ArgumentDefaultsHelpFormatter, version="sample version")

# Initialize Subparsers

subparsers = parser.add_subparsers(help="", dest="command")

# foo command

fooparser = subparsers.add_parser('foo', help='Do foo')
fooparser.add_argument('files', action='store', help='Foo file(s)' , nargs="+")
fooparser.add_argument("-5", "--Do5", type=int, required=False, dest="do5", help="Do 5 subprocedure.")
fooparser.add_argument("-n", "--topn", type=int, required=False, dest="topn", default=1, help="Show topn")

# bar command

barparser = subparsers.add_parser('bar', help='Do bar')
barparser.add_argument('files', action='store', help='Bar file(s)' , nargs="+")
barparser.add_argument("-mq", "--min-mq", …
Run Code Online (Sandbox Code Playgroud)

python argparse

5
推荐指数
1
解决办法
734
查看次数

Python argparse:显示默认值并保留换行符?

我想在帮助文本中保留换行符并显示参数的默认值。

我在 Stackoverflow 找到了两个答案:

如何启用这两个功能?

python argparse

1
推荐指数
1
解决办法
258
查看次数

标签 统计

python ×5

argparse ×4

optparse ×1

python-3.x ×1