4

我将如何从另一个选项中引用一个选项argparse

例如,我有一个修改现有文件的程序。我想要一个可选参数来指定输出文件的名称,它默认与输入相同(即程序默认会覆盖输入文件)。到目前为止,这是我的想法:

parser.add_argument('input', )
parser.add_argument('output',
        default = sys.argv()[1],
        nargs = '?',
        )

但这相当笨拙,似乎不是最佳解决方案。

4

1 回答 1

2

我只会在output之后设置 的值parse_args(),例如:

args = parser.parse_args()
if args.output is None:
    args.output = args.input

在 argparse 中设置默认值的唯一优点(我能想到的)是它可以在帮助显示中使用。但是,如果用户要求-h他可能没有给出input论点。大意的帮助行:“输出默认值与输入相同”会更好

您可以自定义action设置和。但这可能很棘手。而且我看不到帖子逻辑有任何优势。inputargs.inputargs.outputparse_args

于 2013-08-26T21:40:35.470 回答