从 python 脚本中提取参数

Extract arguments from python script

让我解释一下我打算做什么,以便为您提供一些背景信息。 我有一堆 python 脚本(使用 argpars 或 optpars ),它们的输出通常可以 json、纯文本或 csv 格式显示在控制台上。

我想构建一个 web 应用程序(例如 angular + 节点),它会为我的每个脚本自动生成一个网页,包括一些输入框,用于 [=25= 所需的任何参数] 脚本以便 运行 它们形成 UI.

我不想为每个 python 脚本编写它们需要的参数列表和类型 运行,但我正在寻找一种自动提取此类列表的方法形成每个 python 脚本本身。

我可以尝试解析每个脚本的 -h 输出或解析脚本本身 (add_option),但它可能容易出错。

您是否知道任何 tools/script/module 允许我自动执行此操作?

非常感谢。

inspect 模块将在此处提供帮助:

>>> import inspect
>>> def example_function(a, b, c=1234):
        pass
>>> inspect.getargspec(example_function)
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(1234,))

您可能需要详细说明您对脚本及其解析器的访问权限。它们是只能用 -h 调用并返回帮助或用法消息的黑盒,还是可以检查 parser?

例如,当使用 argparse 时,您创建一个 parser,为其分配一些属性并创建参数 Actions。这些操作对象收集在一个列表中,parser._actions

查看 parser.format_helpparser.format_usage 方法以查看将哪些值传递给帮助格式化程序以创建字符串显示。

除了检查 argparse.py 文件外,我建议在交互式会话中创建一个解析器,并检查创建的对象。