ConfigArgParse使用默认的config.ini抛出无法识别的参数

时间:2018-09-05 15:54:00

标签: python argparse

据我了解,使用ConfigArgParse,我可以在程序的config.ini文件中设置最主要的配置,并通过命令行使用其中的一些选项。但是,当我在构造函数中将config.ini文件设置为默认值时,出现以下错误:

main.py: error: unrecognized arguments: --input_base data

其中--input_base是解析器中不包括的唯一配置,如下所示:

parser = ArgParser(default_config_files=['config.ini'])
parser.add_argument('-out', '--output_base', type=str, help='xyz')
parser.add_argument('--amount', type=int, help='xyz')
parser.add_argument('--num_jobs', help='xyz')
parser.add_argument('--batch_size', type=int, help='xyz')
parser.add_argument('--queue_size', type=int, help='xyz')
parser.add_argument('--kind', choices={'long', 'short', 'both'}, help='xyz')
parser.add_argument('--level', choices={'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}, help='xyz')
config = parser.parse_args()

仅使用config.ini可以正常工作,但是由于可用性,我还必须包含命令行参数。

感谢您的帮助。赞赏!

1 个答案:

答案 0 :(得分:1)

尝试将最后一行更改为:

config, unknown = parser.parse_known_args()

这将仅解析已知参数(忽略每个未知参数)。

如该问题:Python argparse ignore unrecognised arguments