subprocess.Popen нужна помощь

1

Мне нужно выполнить команду, используя subprocess.Popen. Команда, которую мне нужно запустить:

./Test -t -1

Test - это исполняемый файл, в то время как другие аргументы -t и -1 предназначены для включения выходов (журналов) в оболочку. Я хочу записать вывод в файл журнала.

К сожалению, я не могу этого сделать.

Я пробовал вот так:

output = open("outputlog.log", "a")
subprocess.Popen(["./Test", "-t", "-1"], stdout = output)

Пожалуйста, помогите мне в этом.

С уважением Tamoor

Теги:
ipc

2 ответа

1

попробуй это:

output = open("outputlog.log", "a")
p = subprocess.Popen(["./Test", "-t", "-1"], stdout=subprocess.PIPE)
output.writelines(p.stdout.readlines())
0

Две вещи могут пойти не так:

  1. Test -t -1 может записываться в stderr, а не в stdout.
  2. может потребоваться сброс или закрытие output до того, как буфер будет записан на диск.

Пытаться:

with open("outputlog.log", "a") as output:
    subprocess.Popen(["./Test", "-t", "-1"], stdout=output, stderr=output)

Это будет записывать как stdout, так и stderr для output, а также закрывать (и скрывать) output когда заканчивается with -suite.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню