【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-文件夹的拷贝操作

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

  1. 微信备份到云服务器失败是怎么回事,电脑微信备份连接失败的原因(解决利用电脑版微信备份的方法)...

    本人都知道,微信作为用户常用的应酬软件,在一样平居生活生活中大要积攒了大量的生活生活.工作.进修关连的一些数据,有些数据无足轻重,有些数据则至关事多.但微信不像QQ,QQ开通个会员,大约使谈天记录最长 ...

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

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

  3. 电脑版微信聊天记录和小程序视频播放黑屏,但有声音,qq和其浏览器视频播放正常。如何解决?

    问题描述: 电脑版微信聊天记录和小程序视频播放黑屏,但有声音,而且截屏时会先显现出画面: qq和其浏览器视频播放正常. 原因:显卡驱动出错 解决办法:更新显卡驱动或者卸载重新安装显卡驱动 注意:我遇到 ...

  4. Python倒计时自动发微信(电脑版微信)

    一.前言: Python倒计时自动发微信(电脑版微信登录状态) 二.主要思路及步骤: 1.先启动微信 2.定位到搜索框 3.搜索微信 4.进入聊天窗口 5.粘贴文本内容 6.发送   7.关闭微信窗口 ...

  5. 复制release文件到另一台电脑.exe文件无法运行_电脑技巧:电脑版微信双开(或微信多开)?用start指令可以解决...

    微信目前也是有电脑版的,这个很多微信用户都知道.电脑版微信可以与手机版微信同时登录,同时接收微信消息和文件. 很多微信用会发现电脑微信还不能像QQ那样,同时多个一起登录.其实可以在命令提示符,使用&q ...

  6. win7 微信 代理服务器,Win7系统使用电脑版微信如何@别人

    现在很多用户喜欢在win7系统中登录电脑版微信,经常会要@别人,因为发送消息也许对方不一定马上看到你的消息,@之后会有特别提示,一些重要的消息@一下比较保险哦,那么Win7系统使用电脑版微信如何@别人 ...

  7. 谷歌浏览器崩溃、电脑版微信,vscode打不开网页

    家里的电脑使用64位win7,谷歌浏览器直接打开页面都会提示页面崩溃,电脑版微信打开页面链接为空白,vscode打开发行说明或插件说明显示空白,这一系列的问题好像都跟浏览器器有关,之前找了很多文章,都 ...

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

    Win10 PC版微信.版本号:3.2.1.141. 今天早上 突然发现 点击app链接或别的需要微信身份验证授权的链接. 默认都跳转到了电脑自带的浏览器上. 因为不是微信自带的内置浏览器,拿不到身份 ...

  9. 电脑版微信提示音mp3_微信技巧,如何快速导出微信语音记录到电脑?无需ROOT版...

    微信现在越来越受欢迎,因为它很大程度上方便人们分享他们的照片,生活事件,以及与他人随时随地聊天.但是如果给你一段会议录音让你整理出来打成音频文件,你是不是会感觉到头疼麻烦呢?这时候你一定会想如果能有一 ...

最新文章

  1. iOS功能-统计平均下班时间
  2. iOS App跳转权限设置
  3. 块级元素 Vs 内联元素
  4. 收集一些深度学习视频
  5. c语言字符串去重简单,C语言实现简单飞机大战
  6. Effective java -- 2 对于所有对象都通用到方法
  7. 【AC Saber】二进制
  8. mysql游标的概述_MySQL游标简介
  9. 阿里巴巴投资以色列风投JVP 规模数千万美元
  10. oracle tovarchar2_oracle数据库中varchar2陷阱
  11. 虚拟服务器e,虚拟主机服务器E
  12. 从C语言到C++的进阶之C++的非类新特性(篇二)
  13. Loj #2324. 「清华集训 2017」小 Y 和二叉树
  14. 设计oa系统mysql数据库设计_企业办公自动化OA系统的设计与实现(MyEclipse,MySQL)
  15. 如何批量设置 Word 文档的打开密码?
  16. php爬取ins图片_python爬取【追新番】日剧资源
  17. 代码审计系列:审计思路学习笔记
  18. python实现播放音乐
  19. Nide.js安装配置
  20. golang profiling

热门文章

  1. android中so文件格式详解,[原创]一 Android ELF系列:ELF文件格式简析到linker的链接so文件原理分析...
  2. 06-浅谈MITM攻击之信息窃取
  3. 三星SCX-4521F 如何清洁搓纸轮?
  4. python什么是入口文件_小问题大隐患:如何正确设置 Python 项目的入口文件?
  5. [毕业设计]电商大数据的商品推荐系统
  6. Oracle hang 之sqlplus -prelim方法
  7. 万字详解大数据架构新概念
  8. linux单端口防cc,Linux防CC攻击
  9. OA办公系统手机app客户考勤资源管理系统php源码
  10. protobuf android 编译,Android跨平台编译 —— protobuf