电脑上安装了PC版本的微信,最近发现C盘不够用了。一查发现微信的聊天记录能占到20G,当然微信自带了清理聊天记录。在家隔离期间,闲来无事用Python写了一个小方法来统计微信路径下Data文件夹下每年产生的数据量,并清理了指定年的数据。
import os from datetime import datetime # 字节转化KB\M\G def format_size(bt): try: bts = float(bt) kb = bts / 1024 except Exception as e: print(e) return "Error" if kb >= 1024: M = kb / 1024 if M >= 1024: G = M / 1024 return "%fG" % (G) else: return "%fM" % (M) else: return "%fkb" % (kb) def get_data_size(path): ''' :param path: 绝对路径 :return: 返回字典结构 年份为key value为该年所有文件的大小 ''' # 空字典用来存储按年计算的文件大小 year_files_size = {} # 遍历该路径下所有的文件及文件夹 for item_file in os.listdir(path): # 使用join方法拼接完整的绝对路径 full_path = os.path.join(path, item_file) # 判断是否为文件 if os.path.isfile(full_path): # 获取文件创建时间并格式化 t = datetime.fromtimestamp(os.path.getctime(full_path)) # 获取格式化后日期时间中的年份,判断是否在空字典中存在。如不存在设置年份为key,文件大小为value # 否则进行value累加 if t.year not in year_files_size: year_files_size[t.year] = os.path.getsize(full_path) else: year_files_size[t.year] += os.path.getsize(full_path) # 格式化字节重新赋值 for k, v in year_files_size.items(): year_files_size[k] = format_size(v) return year_files_size def del_year_data(path, years): ''' :param path: 绝对路径 :param years: 返回删除总条数 :return: ''' total_num = 0 for item in os.listdir(path): full_path = os.path.join(path, item) if os.path.isfile(full_path): t = datetime.fromtimestamp(os.path.getctime(full_path)) if t.year in years: os.remove(full_path) print("清理数据{}成功!".format(full_path)) total_num += 1 print("共清理数据{}条".format(total_num)) return total_num if __name__ == '__main__': path = r"C:\Users\Documents\WeChat Files\xxxx\Data" data = get_data_size(path) print(data) del_years = [2018] del_year_data(path, del_years)
清理之前:
清理之后:
电脑清理完后,可以放心睡觉了。应该是在家隔离闲的!