如何使用 Python 中的 invoke.run() 捕获 stdout 到字符串

此示例展示如何将 stdout 捕获到字符串而不是打印到系统 stdout:

基本技巧是初始化一个 StringIO(一个类文件对象,pyinvoke 可以将子进程的 stdout 写入其中)并将其传递给 invoke.run()out_stream 参数

invoke_capture_stdout.py
import invoke
from io import StringIO

outStream = StringIO()
result = invoke.run("wg genkey", out_stream=outStream)
stdout_str = outStream.getvalue()
print("Result: ", stdout_str)

Check out similar posts by category: Python