Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输出将不会发送到标准输出_Python_Subprocess_Stdout - Fatal编程技术网

Python 输出将不会发送到标准输出

Python 输出将不会发送到标准输出,python,subprocess,stdout,Python,Subprocess,Stdout,我有一些可执行文件,它是一个命令处理器。我试图捕捉它对命令的响应。我使用python子进程 以下是我的脚本: import subprocess # Open the subprocess proc = subprocess.Popen('comproc.exe', \ stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr = subprocess.STDOUT) # Write a command proc.stdin.write('h

我有一些可执行文件,它是一个命令处理器。我试图捕捉它对命令的响应。我使用python子进程

以下是我的脚本:

import subprocess

# Open the subprocess
proc = subprocess.Popen('comproc.exe', \
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr = subprocess.STDOUT)

# Write a command
proc.stdin.write('help cfg_open\n')

# Close the input stream so the subprocess knows to exit
proc.stdin.close()

data = 0
while data!="":
    data = proc.stdout.readline()
    print data

# Wait for subprocess to exit
exit_status = proc.wait()
在我发出“help cfg_open”之前的输出(“欢迎使用命令程序(c)2015…”)被捕获,而对“help cfg_open”的响应则没有。 如果我发出一些不存在的命令,则可以正确捕获stderr

通过cmd重定向的效果非常好:

c:\>comproc.exe >1.txt
help cfg_open
exit
c:\>
我在1.txt中获得整个输出


如有任何帮助,我将不胜感激

请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。您发布的代码导致“找不到文件”错误。@Prune代码正在运行且可执行。comproc.exe是大开发环境的一部分。我在这里的问题更一般——这种奇怪行为的原因是什么?谢谢Python代码缺少您在cmd示例中键入的
exit
,而且两个进程之间可能存在缓冲。@BlackJack我尝试了退出。这没用。我还试过冲洗。也没有结果。