Gre*_*Guy 11
import os
import sys
# silence command-line output temporarily
sys.stdout, sys.stderr = os.devnull, os.devnull
# import the desired library
import library
# unsilence command-line output
sys.stdout, sys.stderr = sys.__stdout__, sys.__stderr__
Run Code Online (Sandbox Code Playgroud)
您可以尝试将 sys.stdout 重定向到 StringIO 以捕获任何文本输出。所以基本上所有要打印出来的东西都会保存在text_trap中。
import io
import sys
#setup text trap
text_trap = io.StringIO()
sys.stdout = text_trap
#to reset the text trap
sys.stdout = sys.__stdout__
Run Code Online (Sandbox Code Playgroud)
一个工作示例:
from io import BytesIO as StringIO
import sys
if __name__ == "__main__":
print "hello1"
#setup text trap
text_trap = StringIO()
sys.stdout = text_trap
print("hello2")
#reset
sys.stdout = sys.__stdout__
print "hello3"
Run Code Online (Sandbox Code Playgroud)
输出:
hello1
hello3
Run Code Online (Sandbox Code Playgroud)