python小项目之微信远程控制
前两天接触了一个有趣的python模块——itchat,这个模块可以非常方便的操作微信,今天就来使用这个模块来实现微信远程控制。
环境准备
itchat模块不是python标准模块(内置模块),是一个第三方模块,需要下载安装,我们可以在命令行中输入如下命令安装:
> pip install itchat --user
注意:pip工具是安装python时连带安装的,不清楚的可以回去看前面环境搭建的教程,或者评论提问。
安装完后,尝试导入模块
>>> import itchat
>>>
没有报错,表明安装成功!
itchat
现在来简单介绍itchat的用法,仅仅是简单了解,为实战做铺垫,如果需要详细学习itchat可以问问度娘。
下面这个简单的例子几乎囊括了我们要用到itchat的功能
import itchat # 导入itchat模块@itchat.msg_register('Text')
def simple(msg):src = msg['FromUserName'] # 消息的发送方dst = msg['ToUserName'] # 消息的接受方text = msg['Text'] # 文本消息# 字符串可以用+号拼接到一起 send_msg = '从'+src+'到'+dst+':' + text# 发送消息给文件传输助手,消息内容为字符串send_msgitchat.send(send_msg, 'filehelper') if __name__ == '__main__':itchat.auto_login()itchat.run()
很多地方看注释就可以懂,但还是有必要解释一下一些我们没接触过的东西。
__name__
首先是,__name__这个变量。
当文件被当作模块导入的时候,也就是被import的时候,在这个文件中,这个__name__变量就是这个文件的名字(不包括后缀.py),而当这个文件被当作程序直接运行的时候,也就是运行python 文件名.py的时候,这个变量的值为__main__,所以if __name__ == '__main__':的意思是,当文件被执行的时候,运行if后的代码块。
为什么会有这样的做法?
python的很多模块很多是可以直接当作程序运行的,一般运行的代码是测试什么的,使用这样的写法可以区分当前模块是作为程序运行,还是作为模块被导入。
而我在这里这么写,只是把这个if代码块当作程序的入口,看起来更清晰罢了。
消息处理
先忽略上面的函数定义,直接从if代码块入手。
运行itchat.auto_login(),不久之后弹出一个二维码,使用手机微信扫描二维码,并确认登录,程序就完成了微信的登录。
然后的itchat.run()里面是一个无限循环(可以在命令行按下Ctrl+C强制结束程序),每当微信有消息的时候,itchat就会调用已注册的消息处理函数来处理对应的消息。
这个消息处理函数就是我们前面定义的simple函数,这个函数带有一个装饰器@itchat.msg_register('Text'),这个装饰器就是把simple函数注册成消息处理函数,参数Text表示只处理文本消息。
也就是说,每当有文本消息时,itchat.run()里面的代码就会调用simple函数,并传入一个参数msg,这个msg其实是一个字典,包含了这则文本消息的发送方id(FromUserName),接受方id(ToUserName),消息内容(Text)等。
发送消息
我们可以通过itchat.send函数,发送消息,这个函数要用到两个参数,第一个是消息的内容,字符串类型;第二个参数是接受方id(这并不是微信昵称),filehelper是一个特殊的id,它指的是微信的文件传输助手(登录后,手机会话窗会出现),就是下图这个东东:

(⊙ˍ⊙) 我的是英文的,不要介意。不过英文也不是filehelper,这我就不知道了,反正中文显示的应该是“文件传输助手”。
我们的项目就是用手机发送命令给这个文件传输助手,让程序跟据不同的命令来操作电脑。
开始工作
我们创建先一个目录,目录名字
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
