首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能在pythonw中得到"print“语句的输出吗?

我能在pythonw中得到"print“语句的输出吗?
EN

Stack Overflow用户
提问于 2010-09-09 15:46:26
回答 4查看 3.7K关注 0票数 4

pythonw.exe没有控制台,所以我看不到打印的输出。但是我的程序在python.exe中运行正常,在pythonw.exe中运行失败。我只想看看python解释器的日志和我的"print“语句打印的日志,行吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-09 18:44:52

您可以通过分配给sys.stdout来全局重定向标准输出:

代码语言:javascript
复制
import sys
sys.stdout = open("mylog.txt", "w")

然后,程序的标准输出的其余部分,包括打印语句,将转到mylog.txt。

票数 5
EN

Stack Overflow用户

发布于 2010-09-09 16:20:58

您可以将print的输出重定向到任何流。例如

代码语言:javascript
复制
logfile = open("logfile.txt", "w")
print >>logfile, "This is a log test"

尽管在大多数情况下,从logging模块使用python的内置日志记录工具会更合适。

票数 1
EN

Stack Overflow用户

发布于 2012-10-21 03:01:11

您可以将输出重定向到实现.write方法的任何类。例如,我将sys.stdout和sys.stderr重定向到一个类,该类将结果写入到一个丰富的文本框中,其中正常输出为黑色,错误为红色。

代码语言:javascript
复制
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")

……

代码语言:javascript
复制
    sys.stdout = RedirectStdOut()
    sys.stderr = RedirectStdErr()

在本例中,logControl只是对一个富文本框的引用,我可以假定它是存在的。您可以同时写入控件和文件,重定向到dbgview或使用它做几乎任何您想做的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3674667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档