【发布时间】:2015-06-19 05:53:12
【问题描述】:
我正在使用argparse in Python2.7,我想在参数的帮助文本中显示多行。
我的代码如下所示:
import argparse
parser = argparse.ArgumentParser(description='details',
usage='use "%(prog)s --help" for more information')
parser.add_argument('--argument', default=None, type=sometype,
help='''
First line \n
Second line \n
\n
More lines \n
''')
我想在调用 --help 时多行打印帮助信息。但是,输出如下所示。
First line Second line More lines
我知道我可以通过将每行的字符串相加来解决问题。
parser.add_argument('--argument', default=None, type=sometype,
help='First line \n' +
'Second line \n' +
'\n' +
'More lines')
但是我想在帮助文本中添加几十行。我想知道有没有一种方便的方法可以将帮助文本分成多行?
此外,帮助消息中的一行中可以显示的字符数似乎有上限,在我的情况下是 54。这个限制系统依赖,有没有办法增加上限?
【问题讨论】:
-
Argparse 在处理基于终端大小的文本重排时故意清除换行符。
-
我明白了,所以每行字符数的上限是系统相关的。
-
这不适合我(在 Ubuntu Linux 18.10 上使用 python 3.6.8)。换行符仍然没有出现,都是一个对齐的文本块。
-
我在那里发现了我的错误:如果使用了子解析器(add_subparsers,后来 add_parser 来定义子解析器),则必须为每个子解析器重新指定 formatter_class