How to automatically direct print statements' outputs to a file in python?
本问题已经有最佳答案,请猛点这里访问。
我有一个python脚本,它包含一些用于调试目的的
所以我想要的是如下:
1 2 3 4 5 6 | import logger_module log_file ="log.txt" logger_module.activate_logging(log_file) print"blablabla" |
当我运行上面的脚本时,我应该在
我相信这是你能得到的最接近的:
1 2 3 | import sys sys.stdout = open('file', 'w') print 'test' # prints test to file |
如果您想写入多个位置,可以使用以下方法。任何具有write方法的对象都可以在python中分配给sys.stdout。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import sys class Logger(object): def __init__(self, *files): self.files = files def write(self, obj): for f in self.files: f.write(obj) f = open('file', 'w') sys.stdout = Logger(f, sys.stdout) print"Python Magic" |