2013-04-03 134 views
0

我有以下腳本:說明參數argparse.ArgumentParser()函數

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」選項,似乎換行和凹痕從TEST_DESCRIPTION刪除當它傳遞到argparse.ArgumentParser()。

# ./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 

反正當它傳遞給argparse.ArgumentParser它是寫我可以保留TEST_DESCRIPTION的格式()。 (我想使它成爲一個原始字符串,插入\ N,但沒有運氣。)

回答

2

你需要RawTextHelpFormatter,這是正確的,在文檔:

parser = argparse.ArgumentParser(description=TEST_DESCRIPTION, 
           formatter_class=argparse.RawTextHelpFormatter)