Lib/optparse.pyファイルを見てください。
class HelpFormatter
def format_option
...
if option.help:
help_text = self.expand_default(option)
help_lines = textwrap.wrap(help_text, self.help_width)
result.append("%*s%s\n" % (indent_first, "", help_lines[0]))
result.extend(["%*s%s\n" % (self.help_position, "", line)
for line in help_lines[1:]])
つまり、help文字列は を通過しtextwrap.wrapます。その関数を簡単にテストすると、 embedded が削除され\n、適切と思われる行が分割されることがわかります。
と同様に、 をサブクラス化し、このような選択したメソッドを書き換えることでargparse、ヘルプをカスタマイズできます。たとえば、その呼び出しをHelpFormatterに置き換えることで、欲しいものを手に入れることができます。自動ラッピングは失われますが、ヘルプの外観を制御できます。textwraphelp_lines = help_text.splitlines()
OptionParserパラメータを取りformatterます。 IndentedHelpFormatterカスタマイズされたフォーマッタ クラスの例です。
,クラスはまさにそのような変更を行い、argparse呼び出しを.RawTextHelpFormatterwrapsplitlines()