我有一个用于最小化chi2函数的脚本。 当我运行脚本时,它会向我打印一行“ J2000.0”,然后给出我的计算值。我知道这些连续的“ J2000.0”行是因为我确定了天体坐标系。
现在,我只想摆脱打印“ J2000.0”行。 我尝试了以下代码:
import sys, os
# Disable
def blockPrint():
sys.stdout = open(os.devnull, 'w')
# Restore
def enablePrint():
sys.stdout = sys.__stdout__
blockPrint()
但是它甚至在以后我想读取的输出上也会阻塞。 有人可以帮我提供一个代码,该代码将不会仅显示包含“ J2000.0”的行吗?
答案 0 :(得分:0)
默认情况下,某些解释器(如jupyter笔记本电脑)不会在控制台上打印。因此,如果您呼叫sys.stdout = sys.__stdout__
,则会强制打印到控制台而不是浏览器。
以下代码对我有用。
import sys, os
class HandlePrint():
def __init__(self):
self.initial_stout = sys.stdout
def blockPrint(self):
sys.stdout = open(os.devnull, 'w')
# Restore
def resetPrint(self):
sys.stdout = self.initial_stout
handle = HandlePrint()
handle.blockPrint()
print 'AAAA'
handle.resetPrint()
print 'BBBB'