subprocess.Popen () Перенаправление ввода-вывода

Попытка перенаправить вывод подпроцесса в файл.

server.py:

while 1:
    print "Count " + str(count)
    sys.stdout.flush()
    count = count + 1
    time.sleep(1)

Лаучер:

cmd = './server.py >temp.txt'
args = shlex.split(cmd)
server = subprocess.Popen( args )

Вывод появляется на экране, temp.txt остается пустым. Что я делаю не так?

В качестве фона я пытаюсь зафиксировать вывод уже написанной программы.

Я не могу использовать:

server = subprocess.Popen(
                [exe_name],
                stdin=subprocess.PIPE, stdout=subprocess.PIPE)

, так как программа может не сбрасываться. Вместо этого я собирался перенаправить вывод через fifo. Это нормально работает, если я запускаю server.py вручную, но, очевидно, нет, если я Popen () причина перенаправления не работает. ps -aux показывает, что server.py был запущен правильно.

11
задан jcollado 17 January 2012 в 22:05
поделиться