私はargparseを使用していると私は私のオプションのいずれかのヘルプテキストで一覧を表示します。しかし、argparseはテキストから新しい行を取り除き、それを1行に表示します。Python argparse:書式設定済みのヘルプテキスト?
はヘルプ文字列がフォーマット済みであることをargparse伝えるために、新しい行の文字を削除しないでとにかくはありますか? docsから
私はargparseを使用していると私は私のオプションのいずれかのヘルプテキストで一覧を表示します。しかし、argparseはテキストから新しい行を取り除き、それを1行に表示します。Python argparse:書式設定済みのヘルプテキスト?
はヘルプ文字列がフォーマット済みであることをargparse伝えるために、新しい行の文字を削除しないでとにかくはありますか? docsから
:
RawTextHelpFormatterは、引数記述を含むヘルプテキスト のすべての種類のための 空白を維持します。
from argparse import RawTextHelpFormatter
parser = ArgumentParser(description='test', formatter_class=RawTextHelpFormatter)
は、単一のオプションでこれを行う方法はありますか?それは他の人のためにラップする言葉を台無しにします – petraus
@ barti_dduのリンクを読んでください。私のコメントはあまりにも欺瞞です。ありがとう – petraus
はい、この質問は既に回答されていますが、私は投稿後に彼のコメントを読んで、私はそれを残すことを考えた:) – user225312
あなただけの1のオプションを無効にしたい場合は、RawTextHelpFormatter
を使用することはできません。 .add_argument()
どこへその他の呼び出しを
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()
:代わりにHelpFormatter
のサブクラスを作成し、「生」処理しなければならないオプションのための特別なイントロ(私は"R|rest of help"
を使用)提供:
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)
し、それを使用します助けが始まらないR|
は通常どおりにラップされます。
これはmy improvements on argparseの一部です。完全なSmartFormatterでは、すべてのオプションにデフォルトの を追加し、ユーティリティの説明をそのまま入力することもできます。
dup:http://stackoverflow.com/questions/3853722/python-argparse-how-to-insert-newline-the-help-text? –