背景
近期疫情肆虐,老师全都线上教学,微信群里多出来一大堆乱七八糟的文件,烦死宝宝了,每次还要看,要是doc还得转换成pdf再放进iPad Pro的PDF Expert中,这期间又要从微信导入pages,把我的iCloud Drive搞得乱七八糟的,快捷指令的制作pdf排版又很有问题,于是决定硬核一回,用python搞定它!
前期
当然是去搜集资料啦,
微信操作:itchat
doc转pdf:pypiwin32+wps(有钱人可以用office,linux的可以自己上网搜)
注意,这个要Windows环境。
pip install itchat
pip install pypiwin32
写代码&坑
itchat的文章挺多,这里不再赘述,但有一点大家都讲得不很清楚(或者我眼瞎没看到),就是itchat如何从微信中下载附件。
首先,收到的消息会被打包成一个非常友好的msg对象,它是一个字典,里面有一堆key,感兴趣的自己dir一下或者上网搜一下。
我们要用到的就是Text和FileName这两个key。
msg['Text']
msg['FileName']
首先去写一个接受消息时运行的函数,函数有且只有一个参数,就是收到的消息,一般命名为msg,def前面记得加上@语句哦(这个叫做修饰器)。当你接受的消息是个附件(文件)时,msg的Text key对应的对象是个函数!是的,是个函数!所以下载文件的语句长这样:
msg['Text']()
但是它会下载到哪里呢?没到哪里,在内存里,它会return回来,作为一个bytes对象。
所以整个的下载代码是这样的:
with open(msg['FileName'],'wb') as file:#记得wb的b!!!
file.write(msg['Text'