0

我正在尝试使我的帮助字符串有所帮助。为此,我有一个Function()带有文档字符串的函数,例如

def Function(x):
""" First line describing what Function does

Keyword Arguments
x = float -- A description of what x does that may be long

"""

完成此操作后,我认为最后会有类似的东西

def parse_command_line(argvs):

    parser = optparse.OptionParser()

    parser.add_option("-f","--Function", help=Function.__doc__,metavar="Bs" )

    (options,arguments) = parser.parse_args(argvs)
    return options, arguments

options, arguments = parse_command_line(sys.argv)

-h使用or调用程序时会出现问题--help输出是由 OptParse 换行的,这意味着关键字参数没有在新行上开始,是否可以阻止 OptParse 换行输出或者有更好的方法吗?

4

2 回答 2

0

如果有兴趣,我已经为 argparse 编写了两个这样的格式化程序类。第一个支持许多 mediaWiki、MarkDown 和 POD 语法(甚至是混合的):

import MarkupHelpFormatter
MarkupHelpFormatter.InputOptions["mediawiki"] = True
parser = argparse.ArgumentParser(
    description="""...your text, with mediawiki markup...""",
    epilog='...',
    formatter_class=MarkupHelpFormatter.MarkupHelpFormatter
)

另一个称为“ParagraphHelpFormatter”。它只是像默认的 argparse 格式化程序一样包装文本,除了它尊重空白行。

两者都位于http://derose.net/steve/utilities/PY/MarkupHelpFormatter.py,并以 CCLI Attribution-Share-alike 的形式获得许可。它们为 ANSI 终端接口格式化。不是很精致(例如,自动编号未完成),但您可能会发现它们很有帮助。

于 2015-01-14T21:28:59.930 回答
-1

argparse 为您提供原始格式的格式化程序,即您的行不会被包装 parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter)

optparse 还可以让您设置格式化程序。我想您可以编写自己的格式化程序,但没有提供我知道的任何内容

于 2013-09-13T02:19:26.567 回答