我寫了下面的代碼。如何在argparse版本輸出中保留換行符,同時讓argparse自動格式化/換行剩餘的幫助消息?
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-v', '--version', action='version',
version='%(prog)s 1.0\nCopyright (c) 2016 Lone Learner')
parser.parse_args()
這會產生以下輸出。
$ python foo.py --version
foo.py 1.0 Copyright (c) 2016 Lone Learner
您可以看到換行符丟失。我希望版權聲明出現在下一行。
如何保留版本輸出消息中的新行?
我還想要argparse來計算python foo.py -h
的輸出應該如何與所有自動換行一起佈置。但是我希望版本輸出是一個多行輸出,並且換行符保持不變。
謝謝。我查看了'HelpFormatter',並在它的docstring中發現了以下內容:「只有這個類的名稱才被認爲是一個公共API。該類提供的所有方法都被視爲一個實現細節。」所以我想如果我想確保我的代碼能夠在未來版本的Python中繼續運行,依靠「HelpFormatter」的實現並不是一個好主意。我想我必須接受'argparse'的限制並在其中工作,或者自己處理'sys.argv'。 –
不要太擔心這個免責聲明。如果您需要/想要編寫自己的格式化程序子類,請執行此操作。五年後,當重寫主要課程進入生產時,您可以根據需要調整您的子類。同時,您的代碼將按照您的要求執行。 – hpaulj