在Python中,你可以使用`subprocess.run()`函数来运行一个外部命令,并获取其输出。你需要将`capture_output`参数设置为`True`,这样函数就会捕获标准输出和标准错误。然后,你可以从返回的`subprocess.CompletedProcess`对象中获取输出。
以下是一个示例³:
```python
import subprocess
# 向子进程提供输入
input_data = b"input data"
# 运行脚本并捕获输出
result = subprocess.run(["python", "script.py"], input=input_data, capture_output=True)
# 获取子进程的输出结果
output_data = result.stdout
error_message = result.stderr
```
在这个例子中,`subprocess.run()`函数运行了一个名为`script.py`的Python脚本,并向其提供了输入数据。函数捕获了脚本的标准输出和标准错误,你可以从`result.stdout`和`result.stderr`中获取这些输出。
请注意,`result.stdout`和`result.stderr`返回的是字节串,如果你想要字符串形式的输出,你可以使用`.decode()`方法将其转换为字符串,例如:`output_data = result.stdout.decode('utf-8')`。
希望这个答案对你有所帮助!
源: 与必应的对话, 2023/12/11
(1) Python 使用subprocess在Windows上运行Python脚本|极客笔记. https://bing.com/search?q=subprocess.run+%e5%a6%82%e4%bd%95%e8%8e%b7%e5%8f%96%e8%bf%90%e8%a1%8c%e8%84%9a%e6%9c%ac%e8%be%93%e5%87%ba%e7%9a%84%e5%8f%98%e9%87%8f.
(2) subprocess --- 子进程管理 — Python 3.12.1 文档. https://docs.python.org/zh-cn/3/library/subprocess.html.
(3) python中subprocess模块subprocess.run,subprocess.getoutput,subprocess.Popen、subprocess.call的使用 - CSDN博客. https://blog.csdn.net/Yy_heng/article/details/127105045.
(4) Python 使用subprocess在Windows上运行Python脚本|极客笔记. https://deepinout.com/python/python-qa/218_python_using_subprocess_to_run_python_script_on_windows.html.
(5) Python 如何从subprocess.Popen()中获取输出|极客笔记. https://deepinout.com/python/python-qa/38_python_how_to_get_output_from_subprocesspopen_procstdoutreadline_blocks_no_data_prints_out.html.
(6) python - 即时从 python 中的 subprocess.run() 获取输出 - IT工具网. https://www.coder.work/article/5052782.