• Python 微信自动化工具开发系列04_所有微信群的群文件自动同步拷贝到群名对应的新文件夹中(2022年8月可用)


    前言

    一个需求
    
    需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
    比如自动回复,再比如自动发送文件或者其他。
    
    																--- 记录于2022年08月
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    使用Python3的第三方库wxauto, 它适用于Windows的微信客户端

    官网: https://github.com/cluic/wxauto


    功能

    这篇是微信自动化工具开发系列的第四篇

    代码的主要功能

    • 微信每个群的群文件文件按照群名划分拷贝到新的文件夹里面

    比如这里: 执行一次, 将微信群里不同群的所有文件同步覆盖拷贝C:\Users\hyh\Documents\01\不同的群名文件夹中
    需要修改配置文件

    注:这个功能不需要用wxauto


    环境

    Windows 10
    Python 3.8.10
    Windows 10的微信客户端版本:3.7.5.23 (中文版本)
    
    • 1
    • 2
    • 3

    注:微信客户端中文版跟英文版都可以
    没什么太大区别。

    建议使用中文版本,英文版本现在微信更新后出现了Bug.

    安装

    安装Python3的第三方库wxauto,具体步骤如下

    官网: https://github.com/cluic/wxauto

    在cmd窗口执行下面命令进行安装

    • 安装第三方库wxauto
    python3 --version
    python3 -m pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple 
    
    • 1
    • 2
    • 查看wxauto是否安装成功
    python3 -c "import wxauto; print(wxauto.VERSION)"
    
    • 1

    使用步骤

    1. 新建main04.py

    import shutil
    import os
    
    
    def copy_wx_file_to_new_dir(input_dir, output_dir, wx_group_dict):
        i = 0
        for value in wx_group_dict.values():
            i += 1
            print("*" * 50)
            print(f"开始处理第{i}个群")
            wechat_group_id = value['id']
            wechat_group_name = value['name']
    
            temp_input_dir = input_dir + '\\' + wechat_group_id + '\\File'
            temp_output_dir = output_dir + '\\' + wechat_group_name
    
            print_temp_output_dir = temp_output_dir.replace('\\\\', '\\')
            try:
                print(f"开始拷贝{wechat_group_name}的文件到新文件夹:{print_temp_output_dir}")
                if os.path.exists(temp_output_dir):
                    shutil.rmtree(temp_output_dir)
                shutil.copytree(temp_input_dir, temp_output_dir)
                print("拷贝结束")
            except Exception as e:
                print("拷贝报错:", e)
    
    
    if __name__ == '__main__':
        # 群名跟id对应关系,打开微信一个群,点击`聊天记录`,右击`文件`,查看其中的一个文件右击`点开文件所在文件夹`,获得其中的`id`
        wx_group_dict = {
            0: {
                'id': '2291da65c17fd645845fdf42e0cc7664',
                'name': '群名一'
            },
            1: {
                'id': 'a9ed29cc2643a3bebcb74b4bae488af2',
                'name': '群名二'
            },
        }
    
        # 本地配置
        output_dir = r'C:\Users\aaa\Documents\01'  # 输出目录,改成本地的
        input_dir = r'C:\Users\aaa\Documents\WeChat Files\wxid_123123\FileStorage\MsgAttach'  # 微信默认保存目录,改成本地的
        ####################################################################################################################
        # 函数功能: 文件拷贝到新的文件夹里面
        ####################################################################################################################
        copy_wx_file_to_new_dir(input_dir, output_dir, wx_group_dict)
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    2. 打开微信

    • windows10下打开微信客户端 (注:如果用的英文,记得点击左下角Settings-> General 切换为中文)
    • 正常扫码登录
    • 打开微信窗口到前面,不要最小化或者缩小到底部菜单

    3. 执行代码

    • 修改main04.py的配置

      wx_group_dict: 群名跟id对应关系,打开微信一个群,点击聊天记录,右击文件,查看其中的一个文件右击点开文件所在文件夹,获得其中的id

      input_dir: 微信默认保存目录,改成本地的

      output_dir: 想要保存的输出目录,改成本地的

        # 群名跟id对应关系,打开微信一个群,点击`聊天记录`,右击`文件`,查看其中的一个文件右击`点开文件所在文件夹`,获得其中的`id` 
        # 如: C:\Users\aaa\Documents\WeChat Files\wxid_123\FileStorage\MsgAttach\12d87d05b941e072f58e5290f995db01\File\2022-07
        # 其中 7bd87d05b941e072f58e5290f995db01 即为这个群对应id
        wx_group_dict = {
            0: {
                'id': '7bd87d05b941e072f58e5290f995db01',
                'name': '群名一'
            },
            1: {
                'id': 'a9ed29cc2643a3bebcb74b4bae488af2',
                'name': '群名二'
            },
        }
    
        # 本地配置
        output_dir = r'C:\Users\aaa\Documents\01'  # 输出目录,改成本地的
        input_dir = r'C:\Users\aaa\Documents\WeChat Files\wxid_123123\FileStorage\MsgAttach'  # 微信默认保存目录,改成本地的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 执行main04.py

    打开cmd窗口,在cmd窗口执行:

    如果没有安装第三方库,参考上面的安装步骤进行安装再执行下面命令

    cd E:\2022Python  # 修改为你的main03.py所在路径
    python3 main04.py
    
    • 1
    • 2

    4. 输出

    cmd窗口输出结果为:

    PS E:\2022Python> python3 .\04_保存用户的群文件到指定文件夹.py
    **************************************************
    开始处理第1个群
    开始拷贝群名一的文件到新文件夹:C:\Users\hyh\Documents\01\群名一
    拷贝结束
    **************************************************
    开始处理第2个群
    开始拷贝群名二的文件到新文件夹:C:\Users\hyh\Documents\01\群名二
    拷贝结束
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 点击 C:\Users\hyh\Documents\01\文件夹下查看到不同群名命名的文件夹

    后续

    这边刚开始写一下系列文章,想发展下自己的博客和微信公众号账号

    如果对你有帮助,方便的话可以关注下 博客左侧的微信公众号(点击我的头像进入个人中心,位于左侧下方)

    如有问题的话,也可通过公众号直接留言,这边有微信提醒,可以几小时内及时回复

    也可直接在CSDN博客留言或者私信留言,这个没有微信提醒,所以这边可能一天或者几天内给回复

    微信公众号所在位置:打开个人中心也就是这个链接
    https://blog.csdn.net/xiaozi_001?type=blog
    左侧下方

    如有需求,

    想要对微信进行一些自动化操作来提高效率:

    比如

    • 自动群发不同聊天信息到几个微信群里

    • 自动群发不同的图片到几个微信群里

    • 自动群发不同的文件到几个微信群里


    • 如果你本身懂代码的话

    如果你本身懂代码的话, 直接看第三方库wxauto的使用,自己来写就可以了,

    博客后续也会基于这个系列继续更新。

    欢迎点赞留言提出问题,方便的话 点赞收藏 关注下微信公众号

    • 如果你本身不懂代码

    只是想要一个简单的微信处理工具来满足自己的需求的话

    可以微信公众号留言或者私信留言,

    发下你的具体需求,这边后续根据你的需求进行下二次开发

    如有需求,可关注下博客左侧的微信公众号留言或者直接私信留言

    前者可以几小时内及时回复

    后者可能看的不及时,大概一天或者几天内有回复


    其他

    如有问题 欢迎提出

    如有疑问 欢迎留言

    如有作用 欢迎点赞

    如有失效 欢迎留言

    2022年08月 可用

  • 相关阅读:
    Mathorcup数学建模竞赛第三届-【妈妈杯】C题:语音识别技术的应用(附带赛题解析&获奖论文&MATLAB代码)(一)
    印刷行业APS解决方案
    第十一章-用户进程
    【手把手带你学JavaSE】String类(下篇)
    linux C语言 手写线程池
    【【萌新的SOC大学习之hello_world】】
    redis实现分布式锁(包含代码以及分析利弊)
    PostgreSQL数据导出与恢复
    Java线程池面试题
    【无标题】
  • 原文地址:https://blog.csdn.net/xiaozi_001/article/details/126108897