繁体   English   中英

Python2 在 Windows 中打开

[英]Python2 Popen in Windows

我试图在 python 2 上使用 Popen 执行 windows 控制台 exe 程序。

import subprocess

#
# Other codes
#

p = subprocess.Popen(path_of_exe, stdin=subprocess.PIPE, stdout=subprocess.PIPE)

output = p.stdout.read()
print output
p.stdin.write('mystring')

当程序执行时,程序会打印Command> 但是,output 变量与字符串无关。 它始终是一个空字符串。

如果我将stdout=subprocess.PIPE =subprocess.PIPE 更改为stdout=sys.stdout ,它会打印输出。

但是,我需要获取 output 来解析我输入的结果。 所以,我想 grep output 是程序。 我不确定为什么 subprocess.PIPE 不起作用。

此外,当我更改为stdout=sys.stdout时,它的 output 无限打印Command> 在我输入字符串之前,程序应该只打印一次Command>

我还尝试使用p.communicate()[0]获取 output ,但它不起作用。

我不知道这种行为。 当我在 Linux 环境中工作时,没有这样的问题。 我可能认为这是标准输入或标准输出缓冲区的问题,即使刷新不起作用。

我以前解决过这个问题。 在 Python2 上使用 Popn 时尝试使用此语法。

p=subprocess.Popen([python(你的 python 所在的位置), 文件名, args],stdout=PIPE).stdout.read()

让我知道这是否适合你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM