У меня есть сценарий Python, который записывает на экран в качестве сценария запуска.Я хочу следить за ходом работы сервера, поэтому я зацикливаюсь на проверке состояния.Я не хочу записывать экран.Поэтому я использую sys.stdout.write.Проблема в том, что программа, которую я использую (wlst Weblogic), печатает всю эту запись, которую я не хочу отображать.Я могу обойти это, используя grep и печатая только строки, начинающиеся с пробела.
У меня есть эта функция
def printRoll():
print ' Is my Print working'
myTest = ' Hello'
myTest1 = 'test 123'
sys.stdout.write("\r %s " % myTest)
sys.stdout.flush()
systime.sleep(10)
sys.stdout.write("\r %s " % myTest1)
sys.stdout.flush()
systime.sleep(10)
То, что я хочу отобразить:
Is my Print working
Hello
, затем через 10 секунд Hello перезаписывается с
test 123
, если я запускаю команду grep
python 'printRoll()' | grep '^[[:space:]]\{1\}[A-Za-z0-9]' --line-buffered
, она печатает только первую строку
Is my Print working
Он не будет печатать какие-либо строки sys.stdout.write.Я думаю, что это проблема с буферизацией, но я не могу найти пример для моей проблемы.
Сценарий python работает, как и ожидалось, но также содержит много другой информации, которую я не хочу выводить на экран.
Любая помощь приветствуется.
Я считаю, что это старая версия Python, то есть 2.7
ура Джеймс