我正在尝试让我的帮助字符串有用。为此,我有一个函数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
或--help
调用程序时出现问题输出由OptParse行换行,这意味着KeyWord参数不是在新行上启动的,是否可以阻止OptParse包装输出还是有更好的方法吗?
答案 0 :(得分: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署名 - 同等许可。它们格式为ANSI终端 接口。没有高度抛光(例如,自动编号未完成),但您可能会发现它们很有帮助。
答案 1 :(得分:-1)
argparse为您提供原始格式的格式化程序,即您的行不会被包装 parser = argparse.ArgumentParser(formatter_class = argparse.RawDescriptionHelpFormatter)
optparse还允许你设置格式化程序..我想你可以编写自己的格式化程序,但是没有提供我知道的