在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/