python - ConfigArgParse 使用默认的 config.ini 抛出无法识别的参数
问题描述
据我了解,使用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 可以正常工作,但由于可用性,我还必须包含命令行参数。
谢谢你的帮助。欣赏它!
解决方案
尝试将最后一行更改为:
config, unknown = parser.parse_known_args()
这将仅解析已知参数(忽略所有未知参数)。
推荐阅读
- regex - 使用简单的英语为 AutoHotkey 生成正则表达式?
- javascript - 如何配置 playwright-jest 以排除测试套件(规范)文件以进行运行?
- groovy - GroovyScriptEngine 官方演示不适用于动态脚本依赖重新加载
- php - 未定义类型 'Dotenv\Dotenv\Dotenv'
- c++ - OpenGL清除颜色Alpha通道不起作用
- cpu - 每个 cpu 指令是否都由其核心的逻辑门实现?
- gcc - GCC 使用什么来代替 GEP?
- c++ - 无法提供正确结果的 cin 问题
- javascript - 我的 bot 命令处理程序运行不佳
- python - 即使在确保它是一个字符串之后,将文本转换为小写的问题