пустой вывод подпроцесса python и ошибка - PullRequest
0 голосов
/ 29 августа 2018

Я использую подпроцесс для запуска инструмента командной строки. Этот инструмент вычисляет и печатает в консоли значение смещения, которое мне нужно получить. Но и stdout, и stderr пусты. Это мой код Python:

import subprocess

PRAAT_EXE = r'S:\Resources\SOFTWARE_AND_UTILITIES\Praat\Praat.exe'
WAV_FILE_1 = r'F:\dev\praat\one.wav'
WAV_FILE_2 = r'F:\dev\praat\two.wav'
CMD = '{0} crosscorelate.praat {1} {2}'.format(PRAAT_EXE, WAV_FILE_1, WAV_FILE_2).split()

p = subprocess.Popen(CMD, shell=True)
output, err = p.communicate()
print("OUTPUT", output)
print("ERRORS", err)

И это вывод консоли:

F:\dev\praat>python test_praat.py
-0.09053774572864626
OUTPUT None
ERRORS None

Итак, вы видите, что значение выводится на консоль перед продолжением скрипта python. Я не знаю, по какому каналу идет это значение, но я не могу его получить.

РЕДАКТИРОВАТЬ: в файле ничего не печатается:

Praat.exe crosscorelate.praat one.wav two.wav > result.txt

Но через пару секунд после завершения сценария python значение выводится в моей командной строке следующим образом:

F:\dev\praat>-0.09053774572864626
...