【问题标题】:Referencing other options in argparse引用 argparse 中的其他选项
【发布时间】:2015-07-21 00:50:43
【问题描述】:

如何在argparse 中引用另一个选项?

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

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

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

【问题讨论】:

    标签: python argparse


    【解决方案1】:

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

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

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

    您可以为input 创建一个自定义action,同时设置args.inputargs.output。但这可能很棘手。而且我看不出比parse_args 的逻辑有任何优势。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-15
      • 2019-04-25
      • 2017-01-20
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      相关资源
      最近更新 更多