python子进程空输出和

2024-06-16 10:05:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用子进程来运行命令行工具。这个工具正在控制台中计算并打印我需要的偏移量值。但是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)

这是控制台的输出:

^{2}$

因此,在python脚本继续运行之前,您可以看到在控制台中打印了该值。我不知道这个值在哪个管道中,但我无法得到它。在

编辑:以下命令不打印文件中的任何内容:

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

但在python脚本完成后的几秒钟内,该值将在我的命令提示符中打印出来,如下所示:

F:\dev\praat>-0.09053774572864626

Tags: 工具devcmdexeonefilesubprocesswav