subprocess.call在windows上的stdout在哪里?

时间:2014-11-21 13:46:44

标签: python windows subprocess

我正在使用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上的问题,它并没有 - 为混淆道歉

0 个答案:

没有答案