0

サブプロセスを使用してコマンド ライン ツールを実行しています。このツールは、取得する必要があるオフセット値を計算してコンソールに出力します。しかし、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
4

0 に答える 0