2

我用 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 控制台充当命令提示符并不断更新?

4

2 回答 2

2

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

于 2012-03-12T20:10:41.973 回答
1

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

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

于 2012-04-30T18:49:38.693 回答