我正在使用
在Python 2.7中
用于解析输入选项。我的一个选择是多项选择。我想在它的帮助文本中列出一个列表,例如
from argparse import ArgumentParser
parser = ArgumentParser(description='test')
parser.add_argument('-g', choices=['a', 'b', 'g', 'd', 'e'], default='a',
help="Some option, where\n"
" a = alpha\n"
" b = beta\n"
" g = gamma\n"
" d = delta\n"
" e = epsilon")
parser.parse_args()
然而,
删除所有换行符和连续空格。结果看起来像
~/Downloads:52$ python2.7 x.py -h
usage: x.py [-h] [-g {a,b,g,d,e}]
test
optional arguments:
-h, --help show this help message and exit
-g {a,b,g,d,e} Some option, where a = alpha b = beta g = gamma d = delta e
= epsilon
如何在帮助文本中插入换行符?
发布于 2010-10-04 16:49:57
尝试使用
from argparse import RawTextHelpFormatter
parser = ArgumentParser(description='test', formatter_class=RawTextHelpFormatter)
发布于 2014-03-04 04:49:56
如果只想覆盖one选项,则不应使用
..。相反,子类化
并为应该"raw“处理的选项提供一个特殊的介绍(我使用
):
import argparse
class SmartFormatter(argparse.HelpFormatter):
def _split_lines(self, text, width):
if text.startswith('R|'):
return text[2:].splitlines()
# this is the RawTextHelpFormatter._split_lines
return argparse.HelpFormatter._split_lines(self, text, width)
并使用它:
from argparse import ArgumentParser
parser = ArgumentParser(description='test', formatter_class=SmartFormatter)
parser.add_argument('-g', choices=['a', 'b', 'g', 'd', 'e'], default='a',
help="R|Some option, where\n"
" a = alpha\n"
" b = beta\n"
" g = gamma\n"
" d = delta\n"
" e = epsilon")
parser.parse_args()
任何其他调用
帮助不是以
将被正常包装。
这是
我对argparse的改进
..。完整的SmartFormatter还支持将默认值添加到所有选项,以及实用程序描述的原始输入。完整版有它自己的
方法,这样对版本字符串所做的任何格式化操作都会被保留:
parser.add_argument('--version', '-v', action="version",
version="version...\n 42!")
发布于 2016-04-21 04:39:15
另一种简单的方法是包含
textwrap
..。
例如,
import argparse, textwrap
parser = argparse.ArgumentParser(description='some information',
usage='use "python %(prog)s --help" for more information',
formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument('--argument', default=somedefault, type=sometype,
help= textwrap.dedent('''\
First line
Second line
More lines ... '''))
通过这种方式,我们可以避免在每一个输出行前面有很长的空格。
usage: use "python your_python_program.py --help" for more information
Prepare input file
optional arguments:
-h, --help show this help message and exit
--argument ARGUMENT
First line
Second line
More lines ...
https://stackoverflow.com/questions/3853722
复制相似问题