这个问题与Python 有关:为什么 print 语句和 subprocess.call() 输出不同步?但解决方案不适用于我的特殊情况。我正在尝试在 python 中完成一个自动化测试过程,它首先打印测试套件的名称,然后有一个 for 循环,该循环遍历打印特定测试名称的列表,然后是执行测试的子进程调用,以测试完成的打印语句结束。最后,我打印了一条语句,说明它是测试套件名称的结尾。
即=========开始测试套件:=========
---------开始测试: ----------
子进程调用执行测试
---------结束测试:------------
重复测试
=========结束测试套件:==========
我当前的代码工作正常,但是当我将其输出重定向到文件时,它会将所有打印语句放在底部。在另一个问题中使用解决方案时,它对我来说完全相反,首先打印所有打印语句,然后执行测试。我尝试使用 sys.stdout.flush(),以及关闭缓冲,但两者都给了我同样的东西。当我重定向输出或写入文件时,如何才能完全按照代码执行/在代码中的方式打印所有内容?