微信FileStorage MsgAttach文件太乱怎么办?教你用Python解决

面对微信FileStorage MsgAttach文件夹的混乱和C盘空间不足的问题,本文介绍了一种解决方案——使用Python编写程序批量移动文件。核心代码利用`cp`或`copy`命令将文件移动到指定目录,通过运行`python main.py "源文件夹" "目标文件夹"`即可实现文件整理。此方法有助于保持文件有序,释放磁盘空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

      [完美解决MsgAttach文件太乱的问题]

      [完美解决微信在C盘文件太大的问题]

      最近我发现微信接收文件太多太乱, 你看微信FileStorage MsgAttach文件夹

      我记得之前不是这样的啊,

      而且经过一段时间后,C 盘就占满了

这让我怎么找文件啊, 真让人头大. 所以我写了一个python程序, 可以将这些目录里面的文件全部移动到指定目录.

下面开始写Python代码

​
import sys
import os
from os import path
from typing import List, Tuple

files_list: List[Tuple[str,str]] = []


def scaner_file(url, catogroy, remain_catogroy=False):
    # print(url, catogroy, remain_catogroy)
    file = os.listdir(url)
    for f in file:
        if f.startswith("$"):
            continue
        if f.endswith(".dat"):
            continue
        real_url = path.join(url, f)
        # print(real_url)
        if path.isfile(real_url):
            # print(path.abspath(real_url))
            if remain_catogroy:
                files_list.append((path.abspath(real_url), path.abspath(real_url)))
            else:
                files_list.append((path.abspath(real_url), path.join(catogroy, f)))
            # 如果是文件,则以绝度路径的方式输出
        elif path.isdir(real_url):
            # 如果是目录,则是地柜调研自定义函数 scaner_file (url)进行多次
            scaner_file(real_url, catogroy, remain_catogroy)
        else:
            print("其他情况")
            pass


def copy_file(source_folder: str, target_folder):
    if target_folder.startswith(source_folder):
        print("请勿复制!!")
        return None
    scaner_file(source_folder, source_folder)
    for f in files_list:
        target_f = f[1].replace(source_folder, target_folder)
        print(f[0],"----------------------", target_f)
        os.system("cp \"{}\" \"{}\"".format(f[0],target_f))


if __name__ == '__main__':
    if len(sys.argv) < 3:
        print(str(sys.argv))
        print("source_folder target_folder")
        sys.exit(0)
    source_folder = sys.argv[1]
    target_folder = sys.argv[2]
    # copy_file(r"G:\games\WorkPython\match2\testfile",r"G:\games\WorkPython\match2\testfilout")
    copy_file(source_folder, target_folder)


​

 核心代码是 cp f1 f2 ... fn  taget_file_or_folder

简单的讲是 cp file1 file2 把文件1 复制到 文件2

Windows 的复制命令是 copy, 

所以要小伙伴们的电脑没有 cp 命令 的话, 

需要将   os.system("cp \"{}\" \"{}\"".format(f[0],target_f))

替换成   os.system("copy \"{}\" \"{}\"".format(f[0],target_f))

程序运行方法 python main.py "要被整理的文件夹" "要放的地方文件夹"

只要把两个参数替换成你要的文件夹,

再也不用担心文件夹太乱了.

小伙伴们如果觉得有用的话, 可以点赞收藏哦!

如果有不懂得地方, 欢迎留言

### WeChat Files 目录结构解析 #### 安装与数据目录概述 微信PC端的安装路径通常位于 `C:\Program Files (x86)\Tencent\WeChat`[^1]。而用户的聊天记录和其他个人化数据则保存在特定的数据目录下,具体位置为 `C:\Users\XXXX\Documents\WeChat Files\XXXX`,其中 `XXXX` 表示用户名或唯一标识符。 #### 主要子文件夹说明 - **All Users**: 存储公共资源和设置。 - **Applet**: 包含微信小程序的相关信息以及运行所需的各种配置文件[^2]。 - **Cache**: 缓存图片、视频等内容以提高加载速度并减少网络流量消耗。 - **FileStorage**: 用户通过微信传输助手发送接收的大文件会被暂时存放在此处。 - **Image2**: 图片素材库,包括朋友圈照片等多媒体资料。 - **MsgAttach**: 记录消息附件的位置链接表单;实际媒体文件可能分散于其他地方。 - **Sns**: 社交圈(SNS)相关内容如动态更新的文字描述及其关联的小程序卡片等。 - **Video**: 录制好的短视频片段会在这里找到对应的副本。 #### 数据库文件分析 根目录下的多个 `.db` 文件构成了重要的数据库组件,用于管理联系人列表、聊天历史以及其他应用内活动的信息。对于更详细的Multi文件夹内部结构及各数据库的功能介绍可参阅专门的技术文档。 ```python import os def list_wechat_files(directory): """ 列出指定微信Files目录中的主要子文件夹 参数: directory (str): 需要遍历的目标文件夹路径 返回: dict: 各个重要子文件夹名称与其绝对路径组成的字典对象 """ key_folders = ['All Users', 'Applet', 'Cache', 'FileStorage', 'Image2', 'MsgAttach', 'Sns', 'Video'] folder_paths = {folder_name: os.path.join(directory, folder_name) for folder_name in key_folders} existing_folders = {name:path for name,path in folder_paths.items() if os.path.isdir(path)} return existing_folders # 示例调用函数来展示如何获取这些关键文件夹的信息 wechat_data_path = r'C:\Users\example_user\Documents\WeChat Files' print(list_wechat_files(wechat_data_path)) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值