Python | 在项目输出内容过多时重定向标准输出

发布时间:2024年01月19日

背景

mian.py越写越复杂,最终控制台输出过多,旧的输出总是被新的输出推了上去,十分不利于调试。于是想着让所有的print语句的输出都保存到一个文件中,且这个文件的名称要根据当前的输出实时生成。

代码

import sys
import datetime

def test_fun():
    print("测试一下主函数调用的函数的语句能否写入")

def main():
    # 获取当前的日期和时间
    now = datetime.datetime.now()
    # 格式化日期和时间,生成文件名
    # 格式为 'output_MMDDHHMM.txt'
    filename = now.strftime("output_%m%d%H%M.txt")

    file = open(filename, 'w', encoding="utf-8")
    try:
        # 保存原来的stdout
        original_stdout = sys.stdout

        # 将stdout重定向到文件
        sys.stdout = file

        print("这句话本来应该输出在终端")
        test_fun()

    finally:
        # 恢复原来的stdout
        sys.stdout = original_stdout

        # 关闭文件
        file.close()

if __name__ == "__main__":
    main()

运行结果

产生了文件output_01191104.txt

该文件的内容如下

这句话本来应该输出在终端
测试一下主函数调用的函数的语句能否写入
?

文章来源:https://blog.csdn.net/weixin_44997802/article/details/135692829
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。