如何抑制Python脚本中的所有打印信息?

时间:2016-09-20 14:41:57

标签: python python-2.7

有一种简单的方法可以全局地抑制python脚本中的所有打印信息吗?

有一个场景我在脚本中放了很多打印信息用于调试目的,但是当用户运行时我不希望脚本打印所有信息。

因此,只有当我传递命令行参数(如debug = 1或类似的东西)时,打印才需要提供不应该打印的信息。

试图简单地说,

if sys.argv[1]:
  debug=1
else:
  debug=0

if debug:
  print "Enabled debugging" 

但是为此我需要在任何地方都包含if条件,而不是有任何简单的方法可以全局关闭打印信息吗?分享您的评论。

由于

2 个答案:

答案 0 :(得分:5)

您必须将stdout重定向到/ dev / null。 以下是操作系统无关的方法。

import os
import sys
f = open(os.devnull, 'w')
sys.stdout = f

答案 1 :(得分:4)

这就是为什么你应该使用内置的logging库而不是在任何地方编写print语句。

通过这种方式,您可以在需要的地方调用logger.debug(),并在应用程序级别配置调试日志是否实际输出。