1

我使用 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()
4

0 回答 0