如何获得输出?

时间:2009-10-22 03:06:25

标签: python user-interface

我在我的应用程序中使用Python / C API,并想知道如何使用gui应用程序获得控制台输出。当出现脚本错误时,它会通过printf显示,但这显然对gui app没有影响。我希望能够在不创建控制台的情况下获得输出。可以这样做吗?

编辑 - 我正在使用Windows,顺便说一句。

编辑 - Python / C库在内部调用printf,并在加载和运行任何脚本之前执行此操作。如果有错误,我希望能够得到它。

2 个答案:

答案 0 :(得分:1)

使用logging包而不是printf。如果需要记录C函数的输出,可以使用类似的东西。

答案 1 :(得分:1)

如果printf你的意思是来自C代码的确切调用,你需要将你的标准输出(文件描述符0)重定向(和解缓冲)到你可以从中获取数据的地方 - 远离琐事,特别是在Windows中,虽然可能是可行的。但为什么不把你的C代码中的那个调用更改为更合理的呢? (最坏的情况是,你自己设计的geprintf函数模仿printf来构建一个字符串然后适当地指向该字符串。

如果你真的在Python代码中表示print语句,那就容易多了 - 只需将sys.stdout设置为一个接受字符串的write方法的对象,你就可以使用该方法做任何事情你想要的,包括记录,在GUI窗口上写,无论你想要什么。啊在C级别那么简单! - )