【问题标题】:Continuously update Python script in NppExec console [Notepad++]在 NppExec 控制台中持续更新 Python 脚本 [Notepad++]
【发布时间】:2026-01-16 06:15:01
【问题描述】:

我使用 NppExec/Notepad++ 编写 Python 脚本。如何在每行 Python 代码执行时更新控制台窗口?例如下面的定时器脚本:

#!usr/bin/env python
import time
import threading

class Timer(threading.Thread):
    def __init__(self, seconds):
        self.runTime = seconds
        threading.Thread.__init__(self)
    def run(self):
        counter = self.runTime
        for sec in range(self.runTime):
            print counter
            time.sleep(1.0)
            counter -= 1
        print "Done."

if __name__ == '__main__':
    t = Timer(10)
    t.start()

当我在命令提示符窗口中运行它时,它每秒实时更新。但在 NppExec 控制台中,它仅在退出后更新。有没有办法让 NppExec 控制台充当命令提示符并不断更新?

【问题讨论】:

标签: python console notepad++ nppexec


【解决方案1】:

所有需要做的就是调用python -u命令来运行脚本,即python -u timer.py而不是python timer.py

默认情况下以无缓冲模式打印输出。对于更详细程序中的自定义输出刷新,stdout 定义必须为rewritten

【讨论】:

    【解决方案2】:

    不熟悉特定控制台应用程序如何处理输出,但 stdout 默认情况下是缓冲的,这可能是这里的问题。有关禁用它的方法,请参阅 this question

    【讨论】:

    • 每次调用 print 时使用自定义类刷新输出效果很好。我从上面的链接中使用了 Dan 的自定义标准输出类方法。非常感谢!