我有一个python脚本(.py),它在控制台上正常运行。当我尝试通过将扩展名更改为(.pyw)来使用pythonw运行脚本时,它停止工作。我的猜测是,打印语句导致pythonw根据Google搜索返回的结果而死亡。
是否有一种方便的方法来禁用print语句以便pythonw可以运行?我在脚本中有太多的打印语句。逐个更改它们是不切实际的,特别是如果我想切换回使用普通的python。
感谢。
答案 0 :(得分:1)
创建自己的打印功能,比如out
,然后将所有print
更改为out
。然后可以将out
方法更改为输出到控制台或文件。
答案 1 :(得分:1)
我发现另一个StackOverflow线程的答案对我来说很有用。我赞成了答案。信用不是我的。如果您想要upvote,请转到该链接并进行upvote。见下面的链接。
Can I get the output of "print" statement in pythonw?
您可以通过分配给sys.stdout来全局重定向stdout:
import sys
sys.stdout = open("mylog.txt", "w")
然后你的程序的其余部分stdout,包括print语句,将转到mylog.txt。
答案 2 :(得分:0)
只需将所有输出重定向到/ 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')