Python argparse版本:不尊重换行符

Python argparse版本:不尊重换行符,python,argparse,Python,Argparse,Python的模块允许显式地指定版本。不幸的是,它似乎不尊重输出中的换行: import argparse parser = argparse.ArgumentParser(description="test") parser.add_argument("--version", "-v", action="version", version="some\ntext") parser.parse_args() 有关如何解决此问题的任何提示?请尝试使用: parser=argparse.Ar

Python的模块允许显式地指定版本。不幸的是,它似乎不尊重输出中的换行:

import argparse

parser = argparse.ArgumentParser(description="test")

parser.add_argument("--version", "-v", action="version", version="some\ntext")

parser.parse_args()
有关如何解决此问题的任何提示?

请尝试使用:

parser=argparse.ArgumentParser(
description=“test”,格式化程序\u class=argparse.RawTextHelpFormatter
)

您应该知道,此格式化程序将影响每个参数,而不仅仅是
版本

如果要对版本输出执行非常具体的操作,可以使用自定义操作:

#/usr/bin/env python
导入argparse
类VersionAction(argparse.Action):
定义初始化(self,选项字符串,版本=None,**kwargs):
super(VersionAction,self)。\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
self.version=版本
def uu调用(self、解析器、命名空间、值、选项u string=None):
打印(“%s”%self.version)
出口(0)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
parser=argparse.ArgumentParser(description=“args”)
添加参数(“--version”,“-v”,action=VersionAction,version=“some\ntext”)
parser.parse_args()

此外,这只会更改您的
-v
选项,不会影响其他选项。

如果您想要不同的格式,是否尝试过更改格式设置程序?
python3 a.py -v
some text