본문 바로가기
Python/Python FAQ

Python argparse 도움말 텍스트에 줄 바꿈을 삽입하는 방법은 무엇인가요?, How to insert newlines on argparse help text?

by 베타코드 2023. 10. 26.
반응형

질문


나는 파이썬 2.7에서 argparse를 사용하여 입력 옵션을 구문 분석하고 있습니다. 내 옵션 중 하나는 다중 선택입니다. 도움말 텍스트에서 목록을 만들고 싶습니다. 예를 들어,

from argparse import ArgumentParser

parser = ArgumentParser(description='test')

parser.add_argument('-g', choices=['a', 'b', 'g', 'd', 'e'], default='a',
    help="일부 옵션, 여기서\n"
         " a = 알파\n"
         " b = 베타\n"
         " g = 감마\n"
         " d = 델타\n"
         " e = 엡실론")

parser.parse_args()

하지만 argparse는 모든 줄 바꿈과 연속된 공백을 제거합니다. 결과는 다음과 같습니다.

~/Downloads:52$ python2.7 x.py -h
사용법: x.py [-h] [-g {a,b,g,d,e}]

test

선택적 인수:
  -h, --help      도움말 메시지를 표시하고 종료합니다.
  -g {a,b,g,d,e}  일부 옵션, 여기서 a = 알파 b = 베타 g = 감마 d = 델타 e = 엡실론

도움말 텍스트에 줄 바꿈을 삽입하는 방법은 무엇인가요?


답변


모든 포맷을 보존하기 위해 RawTextHelpFormatter를 사용해보세요:

from argparse import RawTextHelpFormatter
parser = ArgumentParser(description='test', formatter_class=RawTextHelpFormatter)

이는 RawDescriptionHelpFormatter와 유사하지만, RawTextHelpFormatter는 설명과 에필로그뿐만 아니라 모든 도움말 텍스트(인수 포함)에도 적용됩니다.

반응형

댓글