在python argparse中,是否可以声明一个仅是单值的参数,而不是一个列表,但允许多次指定,所以最新的参数将覆盖较早的参数?

用例是,我正在编写一个Python程序,该程序从〜/ .xxxrc文件读取命令行参数,其中.xxxrc文件每行都有一个命令行参数。我想允许用户通过命令行覆盖〜/ .xxxrc文件中的值。我的计划是在将@~/.xxxrc隐式添加到argv的开头,然后再将其传递给argparse,以便argparse将读取文件。现在问题变成了我上面的问题。

有可能达到这种效果吗?如果没有,我的用例是否有其他解决方案。

最佳答案

argparse模块默认情况下会执行此操作。看一下这个示例,在该示例中,我们两次指定了相同的标志,而最后一个则获胜:

import argparse
parser = argparse.ArgumentParser(description='example')
parser.add_argument('-a', '--add')
options = parser.parse_args(['-a', 'foo', '-a', 'bar'])
print 'add = {}'.format(options.add) # output: add = bar

关于python - Python argparse:单值参数,但允许在命令行上多次指定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22676037/

10-13 07:00