从python脚本

时间:2016-05-02 17:00:34

标签: python argparse optparse

让我解释一下我的想法,以便为您提供一些背景信息。 我有一堆python脚本(使用argpars或optpars),它们的输出通常可以在json,plaint text或csv格式的consolle上。

我想构建一个webapp(例如angular + node),它为我的每个脚本自动生成一个网页,包括python脚本所需的任何参数的输入框,以便从UI运行它们

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

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

您是否了解允许我自动执行的任何工具/脚本/模块?

非常感谢。

2 个答案:

答案 0 :(得分:1)

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,))

答案 1 :(得分:0)

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

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

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

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