如何在Python中将标准输出重定向到任意文件?
当一个长时间运行的Python脚本(例如,web应用程序)从ssh会话中启动并后台启动,并且ssh会话关闭时,应用程序将引发IOError并在尝试写入stdout时失败。我需要找到一种方法,使应用程序和模块输出到一个文件,而不是标准输出,以防止由于IOError失败。目前,我使用nohup将输出重定向到一个文件,这就完成了工作,但出于好奇,我想知道是否有一种不使用nohup的方法。
我已经尝试过sys.stdout = open('somefile', 'w')
,但这似乎并不能阻止一些外部模块仍然输出到终端(或者可能sys.stdout = ...
行根本没有触发)。我知道它应该在我测试过的更简单的脚本上工作,但我还没有时间在web应用程序上进行测试。