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

Python脚本输出重定向至文件无效,如何实现实时写入?

问题解答

确实是输出被缓存了。Python的标准输出(stdout)在重定向到文件时,默认采用块缓冲模式,只有当缓冲区满或者程序退出时才会把内容写入文件,所以你看不到实时输出。

以下是几种让输出立即写入文件的方法:

  • 运行脚本时添加-u参数,强制Python禁用标准输出的缓冲:

    python -u test.py > test.log
    
  • 修改脚本中的print语句,添加flush=True参数,每次打印后强制刷新缓冲区:

    import time
    while True:
        print("test", flush=True)
        time.sleep(10)
    
  • 在脚本开头手动配置标准输出为无缓冲模式(需要导入sys和os模块):

    import sys
    import os
    import time
    
    # 重新设置stdout为无缓冲
    sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
    
    while True:
        print("test")
        time.sleep(10)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:57:01