我有一个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”。
答案 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"