如何将可执行输出重定向到文件和终端?

Patricia Arquette
发布: 2024-11-04 08:36:30
原创
306 人浏览过

How to Redirect Executable Output to Both Files and the Terminal?

执行可执行文件并输出到文件和终端

当使用 subprocess.call() 执行多个可执行文件时,您可能需要指示标准输出和错误输出到文件和终端。但是,使用 stdout=outf 或 stderr=errf 仅指定输出应写入文件,而不是显示在终端上。

要实现所需的行为,您可以直接利用 Popen 类并使用stdout=PIPE 参数用于捕获管道而不是文件中的标准输出。具体方法如下:

<code class="python">from subprocess import Popen, PIPE

with open("out.txt", "wb") as outf, open("err.txt", "wb") as errf:
    p = Popen(["cat", __file__], stdout=PIPE, stderr=errf)
    # Read the output from the pipe
    output = p.stdout.read()
    # Write the output to the terminal
    print(output)
    # Ensure the process completes and wait for the output to be fully written
    p.wait()</code>
登录后复制

在此示例中,我们捕获管道中的 stdout 并使用 p.stdout.read() 读取它。然后,我们将输出打印到终端,然后等待进程完成并将输出完全写入文件。这可确保输出显示在终端上并写入指定的文件。

以上是如何将可执行输出重定向到文件和终端?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!