如何方便地禁用print语句,以便pythonw可以运行



我有一个python脚本(.py),它在控制台上正常运行。当我尝试通过将扩展名更改为(.pyw)来使用pythonw运行脚本时,它停止了工作。我的猜测是,根据谷歌搜索返回的结果,打印声明导致蟒蛇死亡。

有没有一种方便的方法可以禁用print语句,以便pythonw可以运行?我在脚本中有太多的打印语句。逐个更改它们是不现实的,尤其是如果我想切换回使用普通python。

谢谢。

创建自己的打印函数,比如out,然后将所有print更改为out。CCD_ 4方法可以被改变一次以输出到控制台或文件。

我从另一个StackOverflow线程中发现了一个对我来说很好的答案。我对这个答案投了赞成票。这不是我的功劳。如果你想投赞成票,请转到该链接并投赞成票。请参阅下面的链接。

我能得到"的输出吗;打印";用蟒蛇说话?

您可以通过分配到sys.stdout:来全局重定向stdout

import sys sys.stdout = open("mylog.txt", "w")然后,程序的其余stdout,包括打印语句,将转到mylog.txt。

只需将所有输出重定向到/dev/null。Python有一种与平台无关的方法来实现这一点。

import os
import sys
# Only redirect for pythonw not regular python.
if os.path.splitext(os.path.basename(sys.executable))[0] == 'pythonw':
    sys.stdout = open(os.devnull, 'w')
    sys.stderr = open(os.devnull, 'w')

相关内容

最新更新