【发布时间】:2018-03-21 15:13:30
【问题描述】:
我正在使用 argparse.ArgumentParser.parse_known_args 在提供给外部实用程序的命令行上执行一些启发式方法,同时仅在我的 Python 代码中指定其语法的相关部分。但是,当已知和未知参数以简短形式给出并结合在一起时(如ls -lh),它不会检测到它们。
示例:
import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-x', action='store_true')
parser.add_argument('-y', action='store_true')
parser.parse_known_args(['-xy', '-z']) # OK, gives: (Namespace(x=True, y=True), ['-z']
parser.parse_known_args(['-xyz']) # Fails with: PROG: error: argument -y: ignored explicit argument 'z'
有没有办法让它在这种情况下做出更好的启发式?
【问题讨论】:
标签: python command-line-arguments argparse