防止打印字符串 python
Prevent string being printed python
我正在使用某个库,但无法编辑其源代码。库中有一个我必须调用的函数,当我调用它时,它会生成我想要的文件;但是,与此同时,它会将此警告打印到屏幕上数百次。警告总是一样的。
Warning during export : no corresponding GDSII layer found for process
and purpose
这有点烦人,让我打印任何东西到 stdout/stderr 都没用,因为它被这个愚蠢的警告淹没了。
我知道如何通过简单地为它们分配不同的文件来重定向 stdout/stderr。是否可以简单地检查将写入 stdout/stderr 的内容,如果是那个字符串则丢弃它,否则打印它?
我会使用类似...
3.x
import sys
from _io import TextIOWrapper
class StdoutFilter(TextIOWrapper):
def __init__(self, stdout):
super().__init__(stdout)
self.stdout = stdout
def write(self, output):
if output != "don't write this":
self.stdout.write(output)
sys.stdout = StdoutFilter(sys.stdout)
print("hello, world!")
print("don't write this")
sys.stdout = sys.__stdout__
2.x
from StringIO import StringIO
class StdoutFilter(StringIO):
def __init__(self, stdout):
StringIO.__init__(self, stdout)
self.stdout = stdout
希望对您有所帮助!
我正在使用某个库,但无法编辑其源代码。库中有一个我必须调用的函数,当我调用它时,它会生成我想要的文件;但是,与此同时,它会将此警告打印到屏幕上数百次。警告总是一样的。
Warning during export : no corresponding GDSII layer found for process and purpose
这有点烦人,让我打印任何东西到 stdout/stderr 都没用,因为它被这个愚蠢的警告淹没了。
我知道如何通过简单地为它们分配不同的文件来重定向 stdout/stderr。是否可以简单地检查将写入 stdout/stderr 的内容,如果是那个字符串则丢弃它,否则打印它?
我会使用类似...
3.x
import sys
from _io import TextIOWrapper
class StdoutFilter(TextIOWrapper):
def __init__(self, stdout):
super().__init__(stdout)
self.stdout = stdout
def write(self, output):
if output != "don't write this":
self.stdout.write(output)
sys.stdout = StdoutFilter(sys.stdout)
print("hello, world!")
print("don't write this")
sys.stdout = sys.__stdout__
2.x
from StringIO import StringIO
class StdoutFilter(StringIO):
def __init__(self, stdout):
StringIO.__init__(self, stdout)
self.stdout = stdout
希望对您有所帮助!