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 中打开的主要内容,如果未能解决你的问题,请参考以下文章
Python2 / Windows7:打开包含德语变音符号的文件名
无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件