首页 >后端开发 >Python教程 >如何同时将程序输出显示到控制台并将其记录到文件中?

如何同时将程序输出显示到控制台并将其记录到文件中?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-22 04:45:09213浏览

How Can I Simultaneously Display Program Output to the Console and Log It to a File?

将系统输出写入日志文件

问题:

如何在记录日志的同时将输出显示到控制台它到一个文件,包括系统调用输出?

解决方案:

利用 Tee 类将系统输出复制到日志文件而不重定向。

首先,导入必要的库:

import sys

然后,实例化一个Tee object:

tee = Tee("my_log.txt", 'w')

这将打开指定的日志文件并将所有后续的 stdout 输出复制到文件和控制台。

最后,确保将 stdout 恢复到其原始状态完成:

del tee

用法示例:

with Tee("my_log.txt", 'w'):
    print("foo bar")
    os.spawnve("P_WAIT", "/bin/ls", ["/bin/ls"], {})
    os.execve("/bin/ls", ["/bin/ls"], os.environ)

此代码将打印“foo bar”到控制台并将其记录到“my_log.txt”,以及记录执行的系统命令的任何输出。

以上是如何同时将程序输出显示到控制台并将其记录到文件中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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