Python2 在 Windows 中打开

Posted

技术标签:

【中文标题】Python2 在 Windows 中打开【英文标题】:Python2 Popen in Windows 【发布时间】:2020-03-10 17:10:46 【问题描述】:

我试图在 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>。 但是,输出变量与字符串无关。 它始终是一个空字符串。

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

如果这对你有用,请告诉我!

【讨论】:

我不想使用 Popen 执行 python 脚本。建议的方法是执行 python 脚本。我想执行exe(PE文件)。所以,我认为这不是这个问题的问题。

以上是关于Python2 在 Windows 中打开的主要内容,如果未能解决你的问题,请参考以下文章

wind 开启远程访问

Python2 / Windows7:打开包含德语变音符号的文件名

windows关闭了怎么打开?

无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

Python3 在 Linux 中调用 Python2 多处理的行为与在 Windows 中不同

Windows下安装python2出现2503 2502问题详解