湖北球迷论坛,东皇传说,两女1杯
以下这个类print_and_save
可以修饰你的函数,让你的函数或命令的输出结果在控制台输出的同时,还能存储为你指定的文件
免去你是用写日志函数的必要
优点:
import sys class print_and_save(object): def __init__(self, filepath): self.file = open(filepath, 'a') self.old = sys.stdout # 将当前系统输出储存到临时变量 sys.stdout = self def __enter__(self): pass def __call__(self,func): def wrapper(*args, **kwargs): frs = func(*args, **kwargs) self._exit() return frs return wrapper def write(self, message): self.old.write(message) self.file.write(message) def __exit__(self, exc_type, exc_val, exc_tb): self._exit() def _exit(self): self.file.flush() self.file.close() sys.stdout = self.old
with print_and_save("a.txt"): print("directed print")
def contextout(text): print("context function print is %s" % text) with print_and_save("a.txt"): contextout("ok")
@print_and_save("a.txt") def decorated_out(): print("decorator print") decorated_out()
# 控制台 directed print context function print is ok decorator print # 文件a.txt内容 directed print context function print is ok decorator print
此内容为个人原创,转载请注明出处:https://www.cnblogs.com/johnrain/p/10089419.html
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论