我正在使用subprocess.call
从python脚本运行可执行文件
在linux下工作正常,可执行文件中的stdout
根据需要打印到终端
在Windows(7)上运行相同的subprocess.call
时,命令执行成功但我没有stdout
窗口<{1}}
我的subprocess.call看起来像这样:
cmd
如何在windows cmd窗口中显示可执行文件标准输出,即如何获得我在linux下观察到的相同行为?
我现在可以使用下面建议的Popen方法看到一些输出。我的Popen电话看起来像这样:
call([self.test_dict["exe"],
"-p",
self.test_dict["pulse_input"],
"-l",
self.test_dict["library_input"],
"-c",
self.test_dict["config"],
"-r",
self.test_dict["pulse_output"],
"-s",
self.test_dict["stream_output"],
"-u",
self.test_dict["library_output"],
track_output_flag,
track_output_string,
socket_output_flag,
socket_output_string,
"-f",
self.test_dict["frame_size"],
"-d",
self.test_dict["ddi_enable"],
self.test_dict["verbose"],
])
在linux上:
(&#39; Test Harness - Version 2.2.2 \ n \ n \ nFrame 1 of 5:1000 of 4032 pdws Rx:0.206,G2:32.337(kpps)lib:ddi_n 0 residue:11 \ nFrame 2 5:2000 of 4032 pdws Rx:0.174,G2:35.396(kpps)lib:ddi_n 0 残留物:18 \ n框架3:5:3000 of 4032 pdws Rx:0.197,G2:31.913 (kpps)lib:ddi_n 0 residual:25 \ nFrame 4 of 5:4000 of 4032 pdws Rx: 0.139,G2:33.908(kpps)lib:ddi_n 0残基:13 \ n第5页,共5页:4032 of 4032 pdws Rx:2.581,G2:20.164(kpps)lib:ddi_n 0 residue:0 \ nlibrary status:lib.n:52 lib.ddi_n:0 lib.orig_n:52 \ nelapsed time: 0.300253(s)\ n \ n&#39;,&#39;&#39;)
在Windows上:
print(subprocess.Popen([self.test_dict["exe"],
"-p",
self.test_dict["pulse_input"],
"-l",
self.test_dict["library_input"],
"-c",
self.test_dict["config"],
"-r",
self.test_dict["pulse_output"],
"-s",
self.test_dict["stream_output"],
"-u",
self.test_dict["library_output"],
track_output_flag,
track_output_string,
socket_output_flag,
socket_output_string,
"-f",
self.test_dict["frame_size"],
"-d",
self.test_dict["ddi_enable"],
self.test_dict["verbose"]],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate())
linux输出的第一位是我希望在windows上打印到stdout的内容
我错误地认为添加('', '')
正在解决Windows上的问题,它并没有 - 为混淆道歉