模块
1.模块的定义:Python 模块是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句;
2.模块类型:内置模块,自定义模块,第三方模块;
3.模块的优点:最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始,当一个模块编写完毕,就可以被其他地方引用。
4.模块的安装
pip3 install 模块名
5.模块的导入
import
import …. as … 对于导入的模块重命名
from …. import …. 从模块里面导入函数, 变量, 装饰器等
from …. import ….. as …. 从模块里面导入函数, 变量, 装饰器等,并重命名
6.问题: 导入模块时, 模块里面执行代码结果也会显示
解决方法:
name, 所在文件没有当作模块导入是, 结果为main;
name, 所在文件被当作模块导入是, 结果为模块的名称;
判断模块是否被导入
if __name__ == "__main__":
7.导入模块中指定装饰器或函数时
__all__决定用来控制from xxx import *导入的内容
8.生成二维码
import qrcode
img = qrcode.make("http://www.baidu.com")
img.save("hello.png")
9.第三方模块itchat
例:统计好友男女比例
import itchat
import time
import random
itchat.auto_login(hotReload=True)
friends = itchat.get_friends()
info = {} # 'male':1, 'female':, 'other':
for friend in friends[1:]:
if friend['Sex'] == 1:
info['male'] = info.get('male', 0) + 1
elif friend['Sex'] == 2:
info['female'] = info.get('female', 0) + 1
else:
info['other'] = info.get('other', 0) + 1
print(info)
生成的二维码
执行结果
10.微信聊天机器人
import random
import itchat
import requests
import time
def get_tuling_response(_info):
print(_info)
# 图灵机器人的网址
api_url = "http://www.tuling123.com/openapi/api"
data = {
'key': '4ba910513a8442458884e16e6b4b2d4a',
'info': _info,
'userid':'wechat-robot'
}
# 发送数据到指定网址,获取网址返回的数据(字典数据类型)
res = requests.post(api_url, data).json()
# print(res, type(res))
# 给用户返回的内容
print(res['text'])
return res['text']
# get_tuling_response("给我讲个故事")
# get_tuling_response("不好笑")
# get_tuling_response("不好玩")
# 时刻监控好友发送的文本消息, 并且给予一个回复,
# isGroupChat=True接收群聊消息中的文本信息, 并让图灵机器人自动回复;
# isMapChat=True接收群聊消息中的文本信息, 并让图灵机器人自动回复;
@itchat.msg_register(itchat.content.TEXT, isFriendChat=True)
def text_reply(msg):
# 需求: 只对固定的群聊消息, 实现机器人聊天.
# 获取好友发送消息的内容
content = msg['Content']
# 将好友的消息发送给机器人处理, 处理结果就是返回给好友的消息
returnContent = get_tuling_response(content)
time.sleep(random.randint(1,10))
return returnContent
if __name__ == "__main__":
itchat.auto_login(hotReload=True)
itchat.run()
11.给指定的好友发消息
import itchat
import time
itchat.auto_login(hotReload=True)
res = itchat.search_friends("傻蛋蛋")
shijiamiaoInfo = res[0]['UserName']
while True:
itchat.send("hello", toUserName=shijiamiaoInfo)
time.sleep(3)
12.os模块的使用讲解
import os
import itchat
print(os.path.sep)
res = os.system('hostnam1e')
print("res:", res)
res = os.popen('hostname').read()
print("res:", res)
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
if msg['ToUserName'] == 'filehelper':
# 获取要执行命令的内容
command = msg['Content']
if os.system(command) == 0:
res = os.popen(command).read()
result = "【返回值】- 命令执行成功, 执行结果:\n" + res
itchat.send(result, 'filehelper')
else:
result = "【返回值】- 命令%s执行失败, 请重试" %(command)
itchat.send(result, 'filehelper')
if __name__ == "__main__":
itchat.auto_login(hotReload=True)
itchat.run()
通过手机,让电脑执行某些命令,如开关机等