如何自动将打印语句的输出定向到python中的文件?

时间:2014-01-03 06:50:59

标签: python logging output

我有一个python脚本,它包含print语句,用于调试目的。现在我发现很难在控制台中阅读它们。 python是否有任何库会自动将所有print语句的输出定向到指定的文本文件?我顺便使用Windows 7,而不是Linux。我也从命令行运行我的脚本。

所以我想要的是下面的内容:

import logger_module

log_file = "log.txt"
logger_module.activate_logging(log_file)

print "blablabla"

当我运行上面的脚本时,我应该在log.txt文件中看到“blablabla”

1 个答案:

答案 0 :(得分:2)

我相信这是你最接近的:

import sys
sys.stdout = open('file', 'w')
print 'test' # prints test to file

如果您要写入多个位置,可以使用以下方法。具有write方法的任何对象都可以在python中分配给sys.stdout。

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"