我有以下脚本:
import argparse
TEST_DESCRIPTION = """
This script issues the following commands:
1. Command1
2. Command2
3. Command3
"""
parser = argparse.ArgumentParser(description=TEST_DESCRIPTION)
args = parser.parse_args()
打印(TEST_DESCRIPTION)
没有任何选项,输出正如我所料(使用适当的换行符和缩进)
# ./test2.py
This script issues the following commands:
1. Command1
2. Command2
3. Command3
但是,当我使用“-h”选项时,似乎将新行和缩进从传递给argparse.ArgumentParser()时从TEST_DESCRIPTION中删除。
# ./test2.py -h
usage: test2.py [-h]
This script issues the following commands: 1. Command1 2. Command2 3. Command3
optional arguments:
-h, --help show this help message and exit
无论如何,我可以保留TEST_DESCRIPTION的格式,因为它是在传递给argparse.ArgumentParser()时写的。 (我试着把它变成原始字符串,插入\ n,但没有运气。)
答案 0 :(得分:2)
你需要RawTextHelpFormatter,它就在文档中:
parser = argparse.ArgumentParser(description=TEST_DESCRIPTION,
formatter_class=argparse.RawTextHelpFormatter)