首页 > 后端开发 > Python教程 > 以下是一些符合内容的基于问题的文章标题: * 如何使用子进程执行带有用户输入的Python脚本? * 从 Python 脚本捕获输出:子流程技术指南

以下是一些符合内容的基于问题的文章标题: * 如何使用子进程执行带有用户输入的Python脚本? * 从 Python 脚本捕获输出:子流程技术指南

Linda Hamilton
发布: 2024-10-26 07:10:30
原创
432 人浏览过

Here are a few question-based article titles that fit the content:

* How to Execute Python Scripts with User Input Using Subprocess?
* Capturing Output from Python Scripts: A Guide to Subprocess Techniques
* Python Script Execution: Subprocess Methods fo

使用子进程通过用户输入执行 Python 脚本

从另一个脚本 (b.py) 执行 Python 脚本 (a.py) 时通过子进程,捕获脚本的输出可能是一个挑战。本文提供了检索所需输出的替代方法。

方法 1:使用 Subprocess 传递输入并捕获输出

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

script_path = os.path.join(get_script_dir(), 'a.py')
output = check_output([sys.executable, script_path],
                      input='\n'.join(['query 1', 'query 2']),
                      universal_newlines=True)</code>
登录后复制

方法 2:导入模块和调用函数

更灵活的方法是导入目标模块(a)并调用其中的特定函数。确保 a.py 使用 if __name__ == "__main__" 保护来防止在导入时执行不需要的代码。

<code class="python">import a

result = [a.search(query) for query in ['query 1', 'query 2']]</code>
登录后复制

方法 3:并行查询执行的多重处理

如果查询执行是 CPU 密集型的,您可以利用多处理同时运行查询:

<code class="python">from multiprocessing import freeze_support, Pool
import a

if __name__ == "__main__":
   freeze_support()
   pool = Pool() # use all available CPUs
   result = pool.map(a.search, ['query 1', 'query 2'])</code>
登录后复制

以上是以下是一些符合内容的基于问题的文章标题: * 如何使用子进程执行带有用户输入的Python脚本? * 从 Python 脚本捕获输出:子流程技术指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板