Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python argparse:预格式化的帮助文本?_Python_Argparse - Fatal编程技术网

Python argparse:预格式化的帮助文本?

Python argparse:预格式化的帮助文本?,python,argparse,Python,Argparse,我正在使用argparse,我想在我的一个选项的帮助文本中显示一个列表。但是,argparse会从文本中删除新行,并将其显示在一行中 是否仍然可以告诉argparse帮助字符串已预格式化,而不删除新行字符?: RawTextHelpFormatter维护 各种帮助文本的空白 包括参数描述 如果只想覆盖一个选项,则不能使用RawTextHelpFormatter。相反,将帮助格式化程序子类化,并为应该“原始”处理的选项提供一个特殊的介绍(我使用“R|rest of help”): 并使用它: fr

我正在使用argparse,我想在我的一个选项的帮助文本中显示一个列表。但是,argparse会从文本中删除新行,并将其显示在一行中

是否仍然可以告诉argparse帮助字符串已预格式化,而不删除新行字符?

RawTextHelpFormatter维护 各种帮助文本的空白 包括参数描述


如果只想覆盖一个选项,则不能使用
RawTextHelpFormatter
。相反,将
帮助格式化程序子类化,并为应该“原始”处理的选项提供一个特殊的介绍(我使用
“R|rest of help”
):

并使用它:

from argparse import ArgumentParser
from textwrap import dedent

parser = ArgumentParser(description='test')

parser.add_argument('--list', help=dedent("""\
    R|abc
      def
        ghi
"""))
parser.parse_args()
.add_argument()
的任何其他调用,如果帮助不是以
R |
开头,将按正常方式包装

这是我的一部分。完整的SmartFormatter还支持添加
默认设置为所有选项,以及实用程序描述的原始输入。

dup:?有没有办法对单个选项执行此操作?它把另一个单词的包装搞乱了,只能读@barti_ddu的链接。我的评论也是一个骗局。谢谢,这个问题已经得到了回答,但我在发布后阅读了他的评论,所以我想让它保留下来:)如果您只想对程序描述应用预格式化,请使用,它至少从2.7开始就使用Python。不再工作了。。。
import argparse

class SmartFormatter(argparse.HelpFormatter):

    def _split_lines(self, text, width):
        # this is the RawTextHelpFormatter._split_lines
        if text.startswith('R|'):
            return text[2:].splitlines()  
        return argparse.HelpFormatter._split_lines(self, text, width)
from argparse import ArgumentParser
from textwrap import dedent

parser = ArgumentParser(description='test')

parser.add_argument('--list', help=dedent("""\
    R|abc
      def
        ghi
"""))
parser.parse_args()