【Python】解决最新电脑版微信[22-06]聊天文件统一按用户归类到MsgAttach文件夹的问题

news/2024/11/16 1:22:14/

【Python】解决最新电脑版微信[22-06]聊天文件统一按用户归类到MsgAttach文件夹的问题

  • 背景
  • 前提
  • 代码
    • 版本1
    • 版本2

背景

最近,微信又更新了,但这一版本的聊天文件安排方式变化有点大,
之前是按月份分类统一放到File文件夹下

“WeChat Files\wxid_XXXXXXXXXXXXXX\FileStorage\File”

目前是按聊天用户分类统一放到MsgAttach文件夹下

“WeChat Files\wxid_XXXXXXXXXXXXXX\FileStorage\MsgAttach”

对于一个极度喜欢整理文件夹的ISTJer来说,短时间呢必然是不能接受这样的改变的,
于是自己动手,丰衣足食,用几行Python代码来解决此问题。

前提

python os、shutil 模块
技巧 list.extend() dict.get()

代码

版本1

该文件将 MsgAttach目录下的目录过滤后按月份分类复制到File_X目录下,使用时需要自行修改原目录和目标目录中的wxid

import os
import shutil
# from utils import mkdirdef mkdir(path):if not os.path.exists(path):os.makedirs(path)print("mkdir at {}".format(path))return pathdef get_sub_path(path):path_list = ["{}\\{}".format(path, _) for _ in os.listdir(path)]return path_listcopy_path = "D:\\Documents\\WeChat Files\\wxid_XXXXXXXXXXXXXX\FileStorage\\File_X"  #需修改wxid_XXXXXXXXXXXXXX
meat_path = "D:\\Documents\\WeChat Files\\wxid_XXXXXXXXXXXXXX\FileStorage\\MsgAttach"  #需修改wxid_XXXXXXXXXXXXXX
path_list = get_sub_path(meat_path)
final_path_list = []
final_path_list.extend(["{}\\File".format(path) for path in path_list if "File" in os.listdir(path)])  # 过滤
# print(final_path_list)month_path_list = []
for path in final_path_list:month_path_list.extend(get_sub_path(path))
# print(month_path_list)month_path_dict = {}
for path in month_path_list:key = path[-7:]# print(month_path_dict[key])if not month_path_dict.get(key):month_path_dict[key] = []month_path_dict[key].append(path)
# print(month_path_dict)#  按月份复制
for month, path_list in month_path_dict.items():file_list = []for path in path_list:file_list.extend(get_sub_path(path))new_path = mkdir("{}\\{}".format(copy_path, month))for file_path in file_list:file_name = file_path.split("\\")[-1]new_file_path = "{}\{}".format(new_path, file_name)try:shutil.copy(file_path, new_path)print("copy {} from {} to {}".format(file_name, file_path, new_path))except Exception as e:print(e)print()

版本2

该文件将 MsgAttach目录下的文件过滤后按统一复制到File_All目录下,使用时需要自行修改原目录和目标目录中的wxid

import os
import shutil
# from utils import mkdirdef mkdir(path):if not os.path.exists(path):os.makedirs(path)print("mkdir at {}".format(path))return pathdef get_sub_path(path):path_list = ["{}\\{}".format(path, _) for _ in os.listdir(path)]return path_listcopy_path = "D:\\Documents\\WeChat Files\\wxid_XXXXXXXXXXXXXX\FileStorage\\File"  #需修改wxid_XXXXXXXXXXXXXX
meat_path = "D:\\Documents\\WeChat Files\\wxid_XXXXXXXXXXXXXX\FileStorage\\MsgAttach"  #需修改wxid_XXXXXXXXXXXXXX
path_list = get_sub_path(meat_path)
final_path_list = []
final_path_list.extend(["{}\\File".format(path) for path in path_list if "File" in os.listdir(path)])
# print(final_path_list)copy_path = mkdir("{}_all\\".format(copy_path))
for path in final_path_list:if os.path.exists(path):# root 所指的是当前正在遍历的这个文件夹的本身的地址# dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录)# files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)for root, dirs, files in os.walk(path):for file in files:src_file = os.path.join(root, file)shutil.copy(src_file, copy_path)print(file)# print("copy {} from {} to {}".format(file, src_file, copy_path))

版本2 部分代码 参考 Python-文件夹的拷贝操作


http://www.ppmy.cn/news/693007.html

相关文章

微信最新版下载 8.0.6

微信最新版 8.0.6 微信最新版及历史版本下载微信最新版下载信息(微信8.0.6): 微信最新版及历史版本下载 https://weixin.qq.com/cgi-bin/readtemplate?langzh_CN&tweixin_faq_list&headtrue 微信最新版下载信息(微信8.…

微信每日早安推送 Windows版

应诸多网友要求,这次上一个windows版的。 使用方法就是双击打开,立即就会推送一次。需要定时执行,可以使用windows的 任务计划程序 实现。帮大家百度好了 windows如何定时运行程序https://jingyan.baidu.com/article/7c6fb428334a49c1642c90e…

如何检查PC机微信的版本

1、选择“设置” 2、当前微信版本 3、检查是否有新版本 4、已经是最新版本了

微信网页版(在电脑上聊微信)

背景:有时候,在微信上要和人长时间聊天,但是手机打字很累,于是在电脑上装了一个微信客户端,但是体验度极差,于是就卸掉掉了。   解决:后来,发现了微信网页版,就是一个…

电脑版微信(版本3.2.1.141)无法使用内置浏览器

Win10 PC版微信。版本号:3.2.1.141。 今天早上 突然发现 点击app链接或别的需要微信身份验证授权的链接。 默认都跳转到了电脑自带的浏览器上。 因为不是微信自带的内置浏览器,拿不到身份验证信息。 都提示 请在微信客户端打开链接。 查看,电脑版微信账号…

最新电脑版微信可以刷朋友圈啦

最新版Mac电脑上面可以刷微信朋友圈了,另外还可以看视频号和直播。 意味着你上班有更多种方式摸鱼了,不仅可以刷朋友圈,还可以刷视频,看直播。功能基本上与手机相差无几 微信最新版下载地址: 链接: https://pan.baidu…

关于windows版本电脑版微信更新后无法显示好友头像以及接收图片和表情的解决方案

关于windows版本电脑版微信更新后无法显示好友头像以及接收图片和表情的解决方案 最近一段时间一直被windows电脑版微信升级之后好友头像和接受的图片以及表情无法显示而困扰,网上也找了许多方法解决,但是都没能解决这个问题,有的说保持网络…

【Junit 单元测试】

Junit 单元测试 笔记记录 1. Junit介绍2. 使用Junit3. 常用注解4. 断言使用 1. Junit介绍 2. 使用Junit 1.导入依赖 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>tes…