Я запускаю команду через Popen и захватываю stderr и использую это, чтобы обновлять отображение в другом месте, это работает правильно, обновляя каждый раз, когда stderr выводит что-то, но я также пытаюсь сохранить вывод на файл журнала в реальном времени. Хотя это и записывает вывод в файл, он, похоже, не очень часто обновляет этот файл. Есть ли способ получить получение записи в файл каждый раз, когда есть что писать? Вот код:Python Popen stderr catch output
self.process1 = Popen(command, startupinfo=startupinfo, stderr=subprocess.PIPE)
logFile = open(logFilePath, "a")
while True:
line222 = self.process1.stderr.readline().decode('utf-8')
logFile.write(line222)
Я думаю 'logFile.flush()' сразу после 'logfFile.write()' будет делать работу – SomethingSomething
А также есть метод 'Popen', который я сейчас не помню, который вы можете использовать как условие к циклу 'while', и это даст вам выходную строку за строкой ... Необходимо проверить документы docs – SomethingSomething
logFile.flush() работает, спасибо. – speedyrazor