Python 中的迭代命令行参数

Iterative command line arguments in Python

我正在研究 Python 2.7.9 并使用 argparse 模块作为命令行参数。我想扩展我的代码,使其能够根据用户已经在同一命令行中给出的参数获取命令行参数。比方说,参数是 -a,-b,-c,-d 如果用户输入 -a <value> 那么只有他可以输入 -x <value> 并且同样适用于其他情况。如果用户输入 -b <value>,那么只有他可以输入 -y <value>。 谁能帮我解决这个问题。 谢谢!

设计命令行参数时,请遵循 *nix 系统中使用的最佳 practices/standards。

  • 参数的顺序无关紧要
  • 如果没有给出有用的信息,你必须检查你的程序是否给出了强制参数

如果您正在寻找使用 argparse 的示例,请参考此 link

祝你好运!

一种方法是使用 parse_known_args 分两步解析参数,例如:

ap = argparse.ArgumentParse()
ap.add_argument('-a')
args, unknown = ap.parse_known_args()
if args.a and '-x' in unknown:
    ap.add_argument('-x')
args = ap.parse_args()