子进程无法读取标准输出

时间:2021-02-01 15:31:02

标签: python-3.x subprocess

我有一个用 C++ 编写的 .exe,想从 Python 中使用它。我知道有一种方法可以将 C 函数导入 python,但我的 Python 技能有限,而 C++ 没有任何内容,所以我想使用带有子进程的现有 .exe 并读取输出。这个 .exe 运行直到得到一个 (Q) 作为退出命令,所以必须连续读取 sdtout。因为它连接到远程 API 并从那里获取信息,所以在第一条消息到达之前需要一些时间。

看起来像这样: enter image description here

我尝试这样做,但没有任何输出:

from  subprocess import Popen, PIPE, STDOUT
import os

cmd = r'D:\\_Dev\\Avaya\\RTD\\RTDTEST_ntw.exe -log ip_address username password -p 0 -table int skillset 2000 0'

proc = Popen(cmd, stdout=PIPE, stderr=STDOUT, shell=True)

while proc.poll() is None:
    for line in iter(proc.stdout.readline, b''):
        line = line.rstrip().decode('utf8')
        print(">>>", line)

它只是运行,什么也没有打印出来。应该怎么办?

如果我将命令更改为内置命令行 'dir /?',它可以正常工作。

0 个答案:

没有答案