首页 > 解决方案 > argparse 可以将参数转发给其他 python 文件吗?

问题描述

我正在使用 argparse 在 Python 中编写一个包含数百个参数和子模块的 CLI。出于显而易见的原因,我不希望这些参数都堆放在同一个 python 文件中。相反,我更愿意委托给其他子模块,让用户随意添加他们自己的子模块,这些子模块会被顶层自动检测到argparser

例如,我们可能有一个如下所示的目录:

- main.py
- foo.py
- bar.py
- baz/foo.py
...

此 CLI 的一个有效调用是:

./main.py foo --help

这将打开argparse模块的帮助窗格foo.py

另一个例子是:

./main.py baz foo --help

这将打开argparse模块的帮助窗格baz/foo.py

最后:

./main.py --help

会打印出类似的东西:

Options are:
  foo
  bar
  baz

如果您还没有猜到,可以在 中看到这种模式kubectl,它似乎很好地组织了过多的选项。

像这样的图书馆是否存在,还是我需要自己动手?

标签: pythonargparse

解决方案


推荐阅读