我正在编写一个使用位置参数的程序,该参数接受参数的“其余”,像这样
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument(
'filenames',
nargs='*',
metavar="filename(s)",
)
args = parser.parse_args()
在这里,我使用了metavar
参数来获得更好的帮助文本。但是问题是usage
字符串:
>python test_argparse_plural.py -h
usage: test_argparse_plural.py [-h] [filenames) [filename(s ...]]
positional arguments:
filename(s)
optional arguments:
-h, --help show this help message and exit
似乎不能很好地处理(s)
部分。相反,我希望usage
字符串为
test_argparse_plural.py [-h] [filename(s)]
或者也许
test_argparse_plural.py [-h] [filename1, filename2, ...]
(或者其他任何明智的选择,真的)
有没有简单的方法可以做到这一点?
答案 0 :(得分:0)
我遇到了同样的问题。这是我想出的:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument(
'filenames',
nargs='+',
metavar='filename',
help='file(s) to process'
)
args = parser.parse_args()
这将产生以下用法:
nargs_plus_demo.py -h
usage: nargs_plus_demo.py [-h] filename [filename ...]
positional arguments:
filename file(s) to process
optional arguments:
-h, --help show this help message and exit