You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python代码末尾将所有打印输出导出至TXT文件

如何把Python中所有print输出导出到文本文件?

当然可以,给你几种实用的方案,不用大改代码就能搞定:

方案1:命令行重定向(最简单,无需改代码)

直接在运行脚本时用重定向命令,把所有输出写到文件里:

  • 只保存到文件,控制台不显示:
    python your_script.py > output.txt
    
  • 同时在控制台查看并保存到文件(Linux/macOS):
    python your_script.py | tee output.txt
    
  • Windows下同时查看和保存:
    python your_script.py > output.txt 2>&1
    
    这样标准输出和错误输出都会被写入文件。

方案2:在代码中重定向标准输出

如果需要在代码里控制导出逻辑,可以修改sys.stdout,把输出定向到文件。在代码最开头加上这段:

import sys

# 先保存原来的控制台输出,方便后续恢复
original_stdout = sys.stdout

# 打开目标文件,指定编码避免中文乱码
with open('output.txt', 'w', encoding='utf-8') as f:
    sys.stdout = f
    # 这里放你原来的所有代码,包括所有print调用
    # ... 你的数千行代码 ...

# 恢复控制台输出(如果后续还有需要在控制台打印的内容)
sys.stdout = original_stdout

这种方式会让所有print的内容直接写入文件,控制台不会显示,适合不需要实时看输出的场景。

方案3:自定义print函数,同时记录到文件和控制台

如果想既在控制台看输出,又把内容保存到文件,可以替换内置的print函数。在代码最开头加上:

# 打开日志文件,用追加模式避免覆盖
log_file = open('output.txt', 'a', encoding='utf-8')

def custom_print(*args, **kwargs):
    # 先正常输出到控制台
    __builtins__.print(*args, **kwargs)
    # 处理print的默认参数,比如分隔符、结尾符
    sep = kwargs.get('sep', ' ')
    end = kwargs.get('end', '\n')
    # 把内容写入文件
    log_file.write(sep.join(map(str, args)) + end)
    # 强制刷新,避免内容留在缓存里
    log_file.flush()

# 替换内置的print
print = custom_print

# 后面的所有print都会同时输出到控制台和文件
# ... 你的数千行代码 ...

# 脚本结束前记得关闭文件
log_file.close()

推荐优先用方案1,不用改一行代码就能搞定;如果必须在代码里控制,方案2或3都可以。注意指定encoding='utf-8',避免中文输出乱码。

内容的提问来源于stack exchange,提问作者JackW24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:40:33