Постоянно обновляйте скрипт Python в консоли NppExec [Notepad++]

StackOverflow https://stackoverflow.com//questions/9673983

Вопрос

Я пишу скрипты 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 по умолчанию буферизуется, что, вероятно, является проблемой.Видеть этот вопрос способы его отключения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top