从 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_help
和 parser.format_usage
方法以查看将哪些值传递给帮助格式化程序以创建字符串显示。
除了检查 argparse.py
文件外,我建议在交互式会话中创建一个解析器,并检查创建的对象。
让我解释一下我打算做什么,以便为您提供一些背景信息。 我有一堆 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_help
和 parser.format_usage
方法以查看将哪些值传递给帮助格式化程序以创建字符串显示。
除了检查 argparse.py
文件外,我建议在交互式会话中创建一个解析器,并检查创建的对象。