【发布时间】:2022-01-02 10:05:56
【问题描述】:
有没有办法控制argparse 打印到标准输出的帮助文本的空白?
https://docs.python.org/3/howto/argparse.html 上的示例帮助文本都很短,我找不到任何描述如何处理长字符串格式的措辞。
唯一想到的是“\n”——但根据我的尝试,这似乎被彻底剥夺了:
#! /usr/bin/python3
import argparse
import json
def parseArgs():
"""
To learn argparse.
"""
parser = argparse.ArgumentParser()
parser.add_argument('--json_args', required = False, nargs = '?',
default = '{}',
help = """JSON-encapsulated key/value optargs\n
e.g. {"foo": "bar"}
"""
)
a, _ = parser.parse_known_args()
j = json.loads(a.json_args)
r = {}
r['secret'] = 'open_sesame'
for k, v in j.items():
r[k.lower()] = v
return r
def main():
args = parseArgs()
print(json.dumps(args))
if __name__ == '__main__':
try:
main()
except Exception as e:
print(e)
sys.exit(1)
$ python3 ./a.py --help
usage: a.py [-h] [--json_args [JSON_ARGS]]
optional arguments:
-h, --help show this help message and exit
--json_args [JSON_ARGS]
JSON-encapsulated key/value optargs e.g. {"foo":
"bar"}
【问题讨论】:
-
有几个
raw格式化程序。还有一个最后的格式化步骤可以去除多余的 nl。
标签: python whitespace argparse