首页 >后端开发 >Python教程 >如何使用子进程自动执行用户输入并从 Python 脚本检索 JSON 输出?

如何使用子进程自动执行用户输入并从 Python 脚本检索 JSON 输出?

Patricia Arquette
Patricia Arquette原创
2024-10-26 08:16:30295浏览

How to Automate User Input and Retrieve JSON Output from Python Scripts with subprocess?

使用 Subprocess 通过用户输入调用 Python 脚本

在 Python 中,你可能会遇到想要执行脚本的场景(参考如“a.py”),提示用户输入并生成 JSON 格式的输出。要使用 Python 的子进程模块从另一个脚本(名为“b.py”)自动执行此脚本,请按照下列步骤操作:

导入必要的模块:

<code class="python">import os
import sys
from subprocess import check_output</code>

确定路径到要执行的脚本(“a.py”):

<code class="python">script_path = os.path.join(get_script_dir(), 'a.py')</code>

使用 check_output() 函数执行“a.py”并为其提供输入:

<code class="python">output = check_output([sys.executable, script_path],
                      input='\n'.join(['query 1', 'query 2']),
                      universal_newlines=True)</code>

此命令执行以下操作:

  • 提供“查询 1”和“查询 2”作为脚本的输入。
  • 使用 sys 指定的 Python 解释器执行脚本。可执行文件。
  • 在“输出”变量中捕获脚本的输出。

通过以这种方式提供输入,您可以有效地模拟用户与脚本的交互。现在可以根据需要在“b.py”脚本中使用输出。

其他替代方案

  • 导入和调用函数: 您可以导入“a.py”模块并直接调用其函数,提供输入并检索结果。
  • 使用多处理:如果查询处理是 CPU 密集型的,请考虑使用多处理来在单独的进程中运行每个查询以提高性能。

以上是如何使用子进程自动执行用户输入并从 Python 脚本检索 JSON 输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn