像许多命令行工具一样,我的工具也可以接受可选的文件名。 Argparse 似乎通过 nargs='*'
支持此功能,这对我来说已经正常工作:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'files',
help='file(s) to parse instead of stdin',
nargs='*')
parser.parse_args()
然而,help输出的格式很奇怪:
$ ./help.py -h
usage: help.py [-h] [files [files ...]]
我该如何避免嵌套的可选和重复参数名称?在Unix中,重复添加[files ...]没有增加额外信息,这是表明可选参数列表的传统方式:
$ grep --help
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
$ ls --help
Usage:
exa [options] [files...]
$ vim --help
Usage:
nvim [options] [file ...] Edit file(s)
非常感谢任何帮助。我尝试使用argparse,因为使用它似乎是Python最佳实践,但这个帮助输出对我来说是无法接受的。