2022年 11月 5日

python打印日志(控制台内容输出)

你是否遇到过这样几个问题:

1、获取控制台打印的内容,并且想要保存下来

2、代码本来运行的好好的,但是由于新增内容,出现bug,加入了异常处理(try…),把不满足条件的先过滤掉、这时需要查看过滤的内容并且保存文件

3、。。。。。。

其实打印日志很简单,只需要在你的代码最前面加入短短几行代码就可以轻松搞定。

这里我们用到了sys模块,不了解的可以上网查一查这个模块。

 

  1. import sys
  2. #日志打印
  3. class Logger(object):
  4. def __init__(self, filename='default.log', stream=sys.stdout):
  5. self.terminal = stream
  6. self.log = open(filename, 'w')
  7. def write(self, message):
  8. self.terminal.write(message)
  9. self.log.write(message)
  10. def flush(self):
  11. pass
  12. #保存日志
  13. sys.stdout = Logger(r'D:\英雄时刻\爬虫\web_test\a.log', sys.stdout)
  14. sys.stderr = Logger(r'D:\英雄时刻\爬虫\web_test\a.log_file', sys.stderr)

附加:

如何遍历文件夹

  1. # 遍历文件夹
  2. def walkFile(file):
  3. for root, dirs, files in os.walk(file):
  4. # root 表示当前正在访问的文件夹路径
  5. # dirs 表示该文件夹下的子目录名list
  6. # files 表示该文件夹下的文件list
  7. # 遍历文件
  8. list=[]
  9. for f in files:
  10. # print(os.path.join(root, f))
  11. list.append(os.path.join(root, f))
  12. # 遍历所有的文件夹
  13. for d in dirs:
  14. print(os.path.join(root, d))
  15. return list