我想使用Python自动运行在独立Windows控制台上运行的旧应用程序。我想继续在控制台上正常使用应用程序,编写命令和获取结果等。我不时想从Python应用程序中捕获控制台文本。从Python程序向控制台应用程序发送命令没有问题。但是,似乎不可能读取控制台窗口中显示的文本。我正在使用子进程来执行此操作,例如:
from subprocess import Popen, CREATE_NEW_CONSOLE, PIPE
newp = Popen(["oldapp.exe"], creationflags=CREATE_NEW_CONSOLE, stdout = None)
while True:
s = newp.stdout.readline()
if not s:
break
print s,
当我使用stdout = None
时,我可以打开oldapp.exe和独立控制台并正常使用它但我无法从python中读取控制台文本。
当我使用stdout = PIPE
时,oldapp.exe似乎打开并且独立控制台,但在此控制台上不显示任何文本。但在这种情况下我可以从python中读取控制台文本!
有没有办法从python应用程序读取控制台文本,并且能够正常与控制台应用程序交互?
提前致谢。