这是一个可以同时将print内容输出到屏幕以及保存到日志文件的简单代码。
主要利用了 builtins 对 print 方法进行 hook,从而让方法全局有效。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| """global print function"""
import builtins
_print = print
def set_print():
def print_to_file(*args, **kwargs):
_print(*args, **kwargs)
with open('print_ouptut.txt', 'w') as f:
f.write(*args, **kwargs)
builtins.print = print_to_file
def reset_print():
builtins.print = _print
def test_print():
print('hello world')
if __name__ == '__main__':
test_print()
|
实际上,借助这个思路,还能禁用全局的 print。例如在 print 中直接添加 exception。