如果使用argparse库的ArgumentParser类解析命令行参数时,出现了解析了未在Parser中定义的可选参数,可以通过添加参数add_help=False
来禁用自动生成的帮助信息,然后手动解析未定义的参数。
以下是一个示例代码:
import argparse
# 创建ArgumentParser对象
parser = argparse.ArgumentParser(add_help=False)
# 添加已定义的参数
parser.add_argument('--input', help='输入文件')
parser.add_argument('--output', help='输出文件')
# 解析命令行参数
args, unknown_args = parser.parse_known_args()
# 打印已解析的参数
print('已解析的参数:')
print(f'输入文件:{args.input}')
print(f'输出文件:{args.output}')
# 打印未定义的参数
print('未定义的参数:')
print(unknown_args)
假设保存为test.py
,在命令行中运行:
python test.py --input input.txt --output output.txt --unknown_param value
输出结果为:
已解析的参数:
输入文件:input.txt
输出文件:output.txt
未定义的参数:
['--unknown_param', 'value']
可以看到,已定义的参数被正确解析,而未定义的参数--unknown_param value
被保存在unknown_args
列表中。你可以根据需要进一步处理这些未定义的参数。