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

Jupyter Notebook中实现代码实时写入文件并查看运行进度

解决Jupyter Notebook中文件实时写入的问题

问题出在Python的文件缓冲机制:默认情况下,文件写入的内容会先暂存到内存缓冲区,只有当缓冲区填满、文件被关闭,或者手动触发刷新时,才会真正写入磁盘。你的代码使用with语句包裹,会在整个循环结束后才关闭文件,所以运行期间打开文件看不到内容。

以下是几种可行的解决方法:

  • 每次写入后手动刷新缓冲区
    在写入语句后调用flush(),强制将缓冲区内容同步到磁盘:

    with open('tracker.txt', 'w+') as p:
        for i in range(1,100000000):
            p.write("\nValue is: "+str(i))
            p.flush()
    
  • 启用行缓冲模式打开文件
    打开文件时指定buffering=1(文本模式下的行缓冲),这样每次写入换行符时会自动刷新缓冲区,刚好你的写入内容包含\n,无需手动调用flush():

    with open('tracker.txt', 'w+', buffering=1) as p:
        for i in range(1,100000000):
            p.write("\nValue is: "+str(i))
    
  • 同步打印到控制台(可选增强)
    如果需要在Jupyter中同时看到进度,可在写入文件的同时打印内容:

    with open('tracker.txt', 'w+', buffering=1) as p:
        for i in range(1,100000000):
            line = "\nValue is: "+str(i)
            p.write(line)
            print(line.strip())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:03:24