python 打印到标准输出在失败的集群作业中丢失
题
我有一个在计算机集群上运行的 python 代码。默认输出(stdout
, , 从 print
)当代码失败(或被取消等)时会丢失。当我在调用相应的代码部分后立即调用它时,它也不会出现在输出文件中。
错误输出(stderr
) 但是,当作业失败时会打印。如果我没记错的话,在 c++ 中你可以 flush
流以确保卡在缓冲区某处的输出实际上被打印出来。有 python 的类似物吗?我如何确保尽快获得此输出?
我的代码的示意图
for it in somerange:
print "Iteration", it # This appears much later in stdout
f = open(filename[it], 'w')
f.write('stuff')
f.close # file appears when it is closed
otherStuff()
经过几次迭代后,我将有许多输出文件(来自 filename
),但我的中没有输出 stdout
文件。如果函数 otherStuff()
导致崩溃(等),输出 将要 出现在我的 stderr
文件 - 但我的中仍然没有任何内容 stdout
文件。
不隶属于 StackOverflow