从python调用的进程随机挂起

时间:2013-01-15 10:59:10

标签: python subprocess

我使用Python来测试给定的软件。简而言之,这是一个进行一些批处理的c ++程序。我需要使用许多不同的数据集和参数来启动它,这就是我用Python编写工具的原因。我基本上启动了进程,将错误流保存在文件中,解析输出流以获得一些实时反馈。 (标准输出流不是很冗长。)

它主要按照我的预期工作,除了我有时已经测试过的c ++程序。这种挂起仅发生在我的一些测试目标上,在Windows XP上,从不在win 7或其他一些Windows XP上。在可能发生挂起的目标上,如果直接从命令行启动,该软件运行良好。

我怀疑由于IO流处理导致死锁,但我不明白为什么。

以下是我的代码摘录:

stderrFile = open("err.txt", 'w')
stdoutFile = open("out.txt", 'w')

p = subprocess.Popen(args, stdout = subprocess.PIPE, stderr =stderrFile, env = runEnv)
outStream = p.stdout

for line in outStream:
    line = line.rstrip()
    if line.startswith('======== '):
        print " - " + line[9:]
    stdoutFile.write(line + '\n')

returnCode = p.wait()

0 个答案:

没有答案