如何将一个模块的输出仅重定向到一个文件?

How to redirect output of one module only to a file?

我正在用 Python 2 创建一个服务器。为此,我使用模块 CGIHTTPServer 并且我只想将该模块的输出重定向到一个文件。我已经尝试了 CGIHTTPServer.sys.stdout = open("file.log", "w")CGIHTTPServer.SimpleHTTPServer.sys,stdout = open("file.log", "w"),但两者都没有效果。这是否可能,如果可能,如何实现?

在您希望将所有内容重定向到标准输出的模块中。


import sys

stdout_sav = sys.stdout
fout = open('file.log', 'w')
sys.stdout = fout

# since now, whatever is printed to standard output goes to file

(...)


# at the end restore standard output

sys.stdout = stdout_sav
fout.close()