pythonw.exe没有控制台,所以我看不到打印的输出。但是我的程序在python.exe中运行正常,在pythonw.exe中运行失败。我只想看看python解释器的日志和我的"print“语句打印的日志,行吗?
发布于 2010-09-09 18:44:52
您可以通过分配给sys.stdout来全局重定向标准输出:
import sys
sys.stdout = open("mylog.txt", "w")然后,程序的标准输出的其余部分,包括打印语句,将转到mylog.txt。
发布于 2010-09-09 16:20:58
您可以将print的输出重定向到任何流。例如
logfile = open("logfile.txt", "w")
print >>logfile, "This is a log test"尽管在大多数情况下,从logging模块使用python的内置日志记录工具会更合适。
发布于 2012-10-21 03:01:11
您可以将输出重定向到实现.write方法的任何类。例如,我将sys.stdout和sys.stderr重定向到一个类,该类将结果写入到一个丰富的文本框中,其中正常输出为黑色,错误为红色。
logControl = None
def LogWrite(text, color):
logControl.SetDefaultStyle(wx.TextAttr(color, wx.NullColour))
logControl.WriteText(text)
class RedirectStdOut:
def write(self,string):
LogWrite(string, "BLACK")
class RedirectStdErr:
def write(self,string):
LogWrite(string, "RED")……
sys.stdout = RedirectStdOut()
sys.stderr = RedirectStdErr()在本例中,logControl只是对一个富文本框的引用,我可以假定它是存在的。您可以同时写入控件和文件,重定向到dbgview或使用它做几乎任何您想做的事情。
https://stackoverflow.com/questions/3674667
复制相似问题