首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过Python批量修改好友备注

微信好友越来越多,冷落在角落里的好友一大堆,很久没聊天,加上手机更换,可能想不起来是谁。这个时候,友善好用的备注名称就显得特别有用。

在python的第二课里,我们获取到了所有的微信好友列表,本次课程,我们来看看怎么批量修改好友备注。

导出好友列表

因为wxpy搜索好友的时候,只能根据NickName等有限的几个名称来搜索,为了避免编码转码丢失特殊字符,我们需要将NickName的编码保存下来,然后搜索的时候根据原始编码搜索,这样就不会有遗漏。

第二课里的代码稍微改造下:

我们用excel打开导出的文本文件,然后增加两列,第一列是新的备注名,保留导出的旧备注名,第二列是分类,如下图所示的C列和D列,后续我们计划依赖于这两列统一将备注改成"姓名 [分类]"这样的形式。当然,这只是示例,也可以加上电话号码之类的。

读入文本文件里的相关信息

我们在excel里编辑好了后,将文件另存为“d:/OneDrive/wx2.txt”,保存类型选择用制表符分隔的文本文件。稳妥起见,我们再用UltraEdit之类的工具另存下,选择编码为utf-8,并使用unix的方式去保存,避免使用windows下的工具存储时带入了回车或BOM之类的特殊字符。

然后,我们按行依次读取这个文件,文件里其实我们只关心有限的几列。一列是转换后的NickName编码,后续我们要根据其解码后的名称去搜索好友,将备注修改成我们编辑好的两列。

所以,在这里我们读取到每一行后,要对该行做分割处理,处理完后的数据我们需要保存下来,最好保留在字典里。

在excel里编辑的时候,我对列的位置做了调整,NickName编码后所对应的列调整到33列去了,fs[1]代表的是第二列的姓名,fs[2]代表的是第三列的分类。新的备注名称就是“姓名 [分类]”,注意在中括号前面有个空格。

字段的位置因为我做过调整,所显示的列数和导出的文件不一致,具体得自行调整。

运行批量修改脚本

代码其实很简单,完整的代码如下所示:

程序运行后,执行效果如下所示,同时微信通讯录也发生了更改。

不过每次执行的时候,讨厌的1205错误在所难免。根据经验,延时设置成2秒的时候,修改了10个就能碰到;延时设置成10秒,修改了85个就能碰到;设置成30秒,修改了100个就能碰到。建议延时设置在10秒到20秒之间,这样的话性价比比较高,一次性修改的备注名比较多,耗时相对少些。

现在知道‘ [’的作用了吧,因为受微信频率控制的原因,批量更改所有用户时需要运行很多次,遍历的时候,当发现备注已经修改过了,就不再修改,这样减少操作量,提高效率。

用python来写代码,很简单吧,想不想试试呢?

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302G0271V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券