【发布时间】:2018-01-31 09:23:24
【问题描述】:
我有一个 Python 脚本,它需要很多参数。
我目前使用configuration.ini 文件(使用configparser 读取),但希望允许用户使用命令行覆盖特定参数。
如果我只有两个参数,我会使用类似的东西:
if not arg1:
arg1 = config[section]['arg1']
但我不想为 30 个参数这样做。
有什么简单的方法可以从 cmd 行获取可选参数,并默认为 config 文件?
【问题讨论】:
-
你应该看看collections.ChainMap,甚至还有一个非常接近你想要的例子。
-
使用
default=argparse.SUPPRESS、docs.python.org/3/library/argparse.html#default,在没有提供值时将参数保留在命名空间之外。然后使用update将vars(args)条目添加到包含config值的字典中。
标签: python argparse configparser