【发布时间】:2016-06-13 03:27:43
【问题描述】:
当我在 Spyder 中执行以下代码时:
print('a')
some_calculation
print('b')
print('c')
some_calculation
print('d')
print('e')
etc
我使用函数在字典中查找项目时,它不会将所有字符串输出到 Spyder 的控制台。例如:它会打印 'a' 和 'b' 然后什么都没有,在我按 ctrl+c 停止执行后,它也会突然打印 'c' (然后它正忙于第二次计算)。完成后,所有字母都已打印,但在执行代码时并未打印。
控制台似乎只正确处理了一个打印语句,并且在尝试显示下一个打印语句时,它已经开始计算冻结输出。有什么办法可以解决这个问题吗?
【问题讨论】:
-
这很奇怪。你能提供代码库的实际代码吗?你提到的行为是不可能的。
-
以换行符结尾的控制台输出应该立即出现。也许 Spyder 正在干扰这个?尝试在每次打印调用后添加
sys.stdout.flush()。 -
sys.stdout.flush() 成功了。我注意到我正在使用 print('a',end='') 所以下一个输出将在同一行上,这可能会使缓冲区混乱。刷新输出就可以了!谢谢