如何将一个模块的输出仅重定向到一个文件?
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()
我正在用 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()