python subprocess.Popen.stderr挂起

时间:2013-07-08 15:08:36

标签: python subprocess infinite-loop

我在脚本中有以下python代码。

proc = subprocess.Popen("test.bat", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if len(proc.stderr.read()) > 0:
    #Do stuff

带有if语句的行不会抛出任何错误,而是只是无限循环,就像它在无限循环中一样。关于为什么会发生这种情况的任何想法?

仅供参考,这是我正在调用的脚本,它位于同一目录中。

echo "Hello World!"

编辑: 我评论了以上几行并加入:

output = proc.stdout.read()

此行现在悬挂方式与上述相同。此外,从文件中读取的所有各种文件函数都以相同的方式挂起。

1 个答案:

答案 0 :(得分:1)

所以事实证明,剧本不仅仅有回声,它在开头还有一个暂停,一切都搞砸了。