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

前言

一个需求

需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理,
比如自动回复,再比如自动发送文件或者其他。

																--- 记录于2022年08月
																--- 2023年12月再次测试可用

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

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


功能

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

代码的主要功能

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

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

注:这个功能不需要用wxauto


环境

Windows 10
Python 3.8.10
Windows 10的微信客户端版本:3.9.9.43 (英文版本)

注:微信客户端中文版跟英文版都可以
没什么太大区别。
目前wxauto对wechat 3.9版本已支持,可以使用wechat 最新版本的
wechat 3.7 版本的安装包(可以网上寻找):https://wechat-for-windows.en.uptodown.com/windows/download

安装

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

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

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

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

报错处理

  • 运行报错
raise LookupError('Find Control Timeout({}s): {}'.format(maxSearchSeconds, self.GetSearchPropertiesStr()))
LookupError: Find Control Timeout(10.0s): {Name: '输入', ControlType: EditControl}
  • 解决方法
    修改本地的第三方库wxauto.py第145行self.EditMsg = self.UiaAPI.EditControl(Name='输入')
# self.EditMsg = self.UiaAPI.EditControl(Name='输入')
# 修改为了
self.EditMsg = self.UiaAPI.ButtonControl(Name='发送文件').GetParentControl().GetNextSiblingControl().GetFirstChildControl()

保存即可。

使用步骤

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)
    

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'  # 微信默认保存目录,改成本地的
  • 执行main04.py

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

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

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

4. 输出

cmd窗口输出结果为:

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

后续

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

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

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

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

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

如有需求,

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

比如

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

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

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

除此之外,
目前支持对微信群信息进行二次数据挖掘获取有用信息,比如
1.配送群信息的出发地,到达地,货源等相关信息
2.兼职群信息的标题、内容、手机号等相关信息
具体根据实际需求来进行定制开发
可在个人主页看到 公众号 联系方式


  • 如果你本身懂代码的话

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

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

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

  • 如果你本身不懂代码

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

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

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

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

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

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


其他

如有问题 欢迎提出

如有疑问 欢迎留言

如有作用 欢迎点赞

如有失效 欢迎留言

2024年2月 可用

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyh123a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值