from src.common.naming import FileNaming from src.common.ComicInfo import ImageInfo from zipfile import ZipFile from datetime import datetime import os class test: def clean_cbz(self): dir_path = "/mnt/Comics/CBZ/rm_comic" for dir in os.listdir(dir_path): c_dir = os.path.join(dir_path, dir) if os.path.isdir(c_dir): files = list(FileNaming.get_filenames_optimized(c_dir, ext_filter=['.CBZ'])) for file in files: size = os.path.getsize(file) if size < 3000: os.remove(file) print(f"已删除{file}") def _clean_old_cbz(self, cbz_path): m_time = datetime.fromtimestamp(os.path.getmtime(cbz_path)) str_strftime = '%Y%m%d' zip_time = m_time.strftime(str_strftime) with ZipFile(cbz_path, 'r') as zip_ref: old_img = 0 for file_info in zip_ref.infolist(): # 获取日期时间信息,格式为 (year, month, day, hour, minute, second) date_time = file_info.date_time # 将日期时间元组转换为datetime对象 dt = datetime(*date_time) # 格式化输出日期时间,例如:YYYY-MM-DD HH:MM:SS file_date_time = dt.strftime(str_strftime) # 一周内的图片跳过 if int(zip_time) - int(file_date_time) > 7: #print(f"Clear Filename: {file_info.filename}, zip: {cbz_path}") old_img += 1 if old_img > 0: #os.remove(cbz_path) print(f"remove cbz {cbz_path}") def clean_old_cbz(self): dir_path = "/mnt/Comics/CBZ/rm_comic" for dir in os.listdir(dir_path): c_dir = os.path.join(dir_path, dir) if os.path.isdir(c_dir): files = list(FileNaming.get_filenames_optimized(c_dir, ext_filter=['.CBZ'])) for file in files: self._clean_old_cbz(file) if __name__ == "__main__": test().clean_old_cbz()