Постоянно обновляйте скрипт Python в консоли NppExec [Notepad++]
Вопрос
Я пишу скрипты Python с помощью NppExec/Notepad++.Как обновить окно консоли при выполнении каждой строки моего кода 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 работать как командная строка и постоянно обновляться?
Решение 2
Все, что нужно сделать, это вызвать python -u
команда для запуска скрипта, т.е. python -u timer.py
вместо python timer.py
По умолчанию вывод печатается в небуферизованном режиме.Для пользовательской очистки вывода в более подробных программах stdout
определение должно быть переписан.
Другие советы
Не знаком с тем, как это конкретное консольное приложение обрабатывает вывод, но stdout
по умолчанию буферизуется, что, вероятно, является проблемой.Видеть этот вопрос способы его отключения.