Привет,
открыл файл на запись
sys.stdout = open( logfile, "w" )
все, что через print, уходит в этот файл.
Но мне надо еще запускать внешние команды, скрипты и хотелось бы, что бы их вывод тоже втуда уходил.
Пробовал вызывать команду и перенаправлять вывод в тот же файл
os.system( "ls 1>>%s" % sys.stdout.name )
но получается странный эффект, то, что выводится командой print попадает в начало файла, то, что выводится по system попадает в конец файла. Даже если print вызывается после system.
Выглядит потом некрасиво.
Пробовал так же popen4
(cin,cout) = os.popen4( "myscript.sh", 0 )
for l in cout: print l[:-1]
но выхлоп myscript.sh появляется в логе, только после того как myscript.sh завершит свою работу, а скрипт долгоиграющий, и мне надо показывать результат между дел. Короче тоже не то.
Есть еще какие то варианты?
Спасибо