# -*- coding: utf-8 -*- # @Author: wangkun # @Time: 2023/1/31 """ 公共方法,包含:生成log / 删除log / 下载方法 / 删除 weixinzhishu_chlsfiles / 过滤词库 / 保存视频信息至本地 txt / 翻译 / ffmpeg """ from datetime import date, timedelta from loguru import logger import datetime import os import time class Common: # 统一获取当前时间 2022-04-14 20:13:51.244472 now = datetime.datetime.now() # 昨天 2022-04-13 yesterday = (date.today() + timedelta(days=-1)).strftime("%Y/%m/%d") # 今天 2022-04-14 today = date.today() # 明天 2022-04-15 tomorrow = (date.today() + timedelta(days=1)).strftime("%Y/%m/%d") # 使用 logger 模块生成日志 @staticmethod def logger(log_type, crawler): """ 使用 logger 模块生成日志 """ # 日志路径 log_dir = f"./{crawler}/logs/" log_path = os.getcwd() + os.sep + log_dir if not os.path.isdir(log_path): os.makedirs(log_path) # 日志文件名 log_name = time.strftime("%Y-%m-%d", time.localtime(time.time())) + f'-{crawler}-{log_type}.log' # 日志不打印到控制台 logger.remove(handler_id=None) # rotation="500 MB",实现每 500MB 存储一个文件 # rotation="12:00",实现每天 12:00 创建一个文件 # rotation="1 week",每周创建一个文件 # retention="10 days",每隔10天之后就会清理旧的日志 # 初始化日志 logger.add(log_dir + log_name, level="INFO", rotation='00:00') return logger # 清除日志,保留最近 10 个文件 @classmethod def del_logs(cls, log_type, crawler): """ 清除冗余日志文件 :return: 保留最近 10 个日志 """ log_dir = f"./{crawler}/logs/" all_files = sorted(os.listdir(log_dir)) all_logs = [] for log in all_files: name = os.path.splitext(log)[-1] if name == ".log": all_logs.append(log) if len(all_logs) <= 10: pass else: for file in all_logs[:len(all_logs) - 10]: os.remove(log_dir + file) cls.logger(log_type, crawler).info("清除日志成功\n") # # 删除 charles 缓存文件,只保留最近的两个文件 # @classmethod # def del_charles_files(cls, log_type, crawler): # # 目标文件夹下所有文件 # all_file = sorted(os.listdir(f"./{crawler}/{crawler}_chlsfiles/")) # for file in all_file[0:-3]: # os.remove(f"./{crawler}/{crawler}_chlsfiles/{file}") # cls.logger(log_type, crawler).info("删除 charles 缓存文件成功\n") if __name__ == "__main__": pass