小编Jef*_*wab的帖子

当 nargs='*' 时从 argparse 生成更好的帮助

像许多命令行工具一样,我的接受可选文件名。Argparse 似乎通过 支持这一点nargs='*',它按预期对我有用:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument(
        'files',
        help='file(s) to parse instead of stdin',
        nargs='*')

parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

但是,帮助输出很奇怪:

$ ./help.py -h
usage: help.py [-h] [files [files ...]]
Run Code Online (Sandbox Code Playgroud)

如何避免嵌套的可选和重复参数名称?除了 [files ...] 之外,重复不添加任何信息,这是 Unix 上指示可选参数列表的传统方式:

$ 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)
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。我正在尝试 argparse,因为使用它似乎是 …

python argparse

4
推荐指数
1
解决办法
163
查看次数

标签 统计

argparse ×1

python ×1