作者 | ZackSock
来源 | CSDN博客
Python凭借其简洁的代码,赢得了许多开发者的喜爱。因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的操作。下面我们来看看,我们用不超过10行代码能实现些什么有趣的功能。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0hrbGF6Y1RBcUh3Tmlha3h3Y3JsTlVGbXg5UmpOR3hSMGdoR0tNb085dWJpYkNpYjlDSFlra1QySEEvNjQw?x-oss-process=image/format,png)
生成二维码
二维码作为一种信息传递的工具,在当今社会发挥了重要作用。而生成一个二维码也非常简单,在Python中我们可以通过MyQR模块了生成二维码,而生成一个二维码我们只需要2行代码,我们先安装MyQR模块,这里选用国内的源下载:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ myqr
安装完成后我们就可以开始写代码了:
from MyQR import myqr # 注意大小写myqr.run(words='http://www.baidu.com') # 如果为网站则会自动跳转,文本直接显示,不支持中文
我们执行代码后会在项目下生成一张二维码。当然我们还可以丰富二维码:
from MyQR import myqrmyqr.run( words='http://www.baidu.com', # 包含信息 picture='lbxx.jpg', # 背景图片 colorized=True, # 是否有颜色,如果为False则为黑白 save_name='code.png' # 输出文件名)
效果图如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8xaFJlSGFxYWZhZEZrNjc3d0hmcG1qalFxMkw1SVB0VHdNNHpHQXJQRFpDbUQ1MnpuOTAwWG5hMXo5UGZHaWN6WVNNRkxGM05Qa0Jhb1Q1R2p4dXhRUGcvNjQw?x-oss-process=image/format,png)
另外MyQR还支持动态图片。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0g3OUlkZ3dCdUNsZEtQR0RpY1B5TGZ6ZWwzREJvOE9kZ2Q4VmJiWWlhVVpHM3FCejVEUmhFYm1nZy82NDA?x-oss-process=image/format,png)
生成词云
词云是数据可视化的一种非常优美的方式,我们通过词云可以很直观的看出一些词语出现的频率高低。使用Python我们可以通过wordcloud模块生成词云,我们先安装wordcloud模块:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ wordcloud
然后我们就可以写代码了:
from wordcloud import WordCloudwc = WordCloud() # 创建词云对象wc.generate('Do not go gentle into that good night') # 生成词云wc.to_file('wc.png') # 保存词云
执行代码后生成如下词云:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8xaFJlSGFxYWZhZEZrNjc3d0hmcG1qalFxMkw1SVB0VDlxN2VNZTBDeFlsMEc4VVFZZ1UzaWJsQ0V0Z1lHS1p4RlZJbU9WNEtoSHBsbXhoNUh4c0dsWGcvNjQw?x-oss-process=image/format,png)
当然这只是最简单的词云,词云更详细的操作可以参见WordCloud生成卡卡西忍术词云[1]。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0hndlU2alFsQzZVNmcyRjFzQkFVaWNGYmNtTmliRGEwZDN2SHBhd1ZXZm41NjU0bzd1TEk3aWNvencvNjQw?x-oss-process=image/format,png)
批量抠图
抠图的实现需要借助百度飞桨的深度学习工具paddlepaddle,我们需要安装两个模块就可以很快的实现批量抠图了,第一个是PaddlePaddle:
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
还有一个是paddlehub模型库:
pip install -i https://mirror.baidu.com/pypi/simple paddlehub
更详细的安装事项可以参见飞桨官网:https://www.paddlepaddle.org.cn/
接下来我们只需要5行代码就能实现批量抠图:
import os, paddlehub as hubhumanseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型path = 'D:/CodeField/Workplace/PythonWorkplace/GrapImage/' # 文件目录files = [path + i for i in os.listdir(path)] # 获取文件列表results = humanseg.segmentation(data={'image':files}) # 抠图
抠图效果如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8xaFJlSGFxYWZhZEZrNjc3d0hmcG1qalFxMkw1SVB0VHJJWG1VUUkwUkE1U1FiWkxUTzZJTlBaaWNFUmdBeDJxYkgwRDJjVnhDUkJ4QVQzYjlCWkhjYncvNjQw?x-oss-process=image/format,png)
其中左边为原图,右边为抠图后填充黄色背景图。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0h3MGdicjJuUWhPUkNOaWI1V2xidW8yYW5lNHF6aWFuY21vSHV5UEs1TnNVVGhaWFhuRmJpYUxkbEEvNjQw?x-oss-process=image/format,png)
文字情绪识别
在paddlepaddle面前,自然语言处理也变得非常简单。实现文字情绪识别我们同样需要安装PaddlePaddle和Paddlehub,具体安装参见三中内容。然后就是我们的代码部分了:
import paddlehub as hub senta = hub.Module(name='senta_lstm') # 加载模型sentence = [ # 准备要识别的语句 '你真美', '你真丑', '我好难过', '我不开心', '这个游戏好好玩', '什么垃圾游戏',]results = senta.sentiment_classify(data={"text":sentence}) # 情绪识别# 输出识别结果for result in results: print(result)
识别的结果是一个字典列表:
{'text': '你真美', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9602, 'negative_probs': 0.0398}{'text': '你真丑', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.0033, 'negative_probs': 0.9967}{'text': '我好难过', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.5324, 'negative_probs': 0.4676}{'text': '我不开心', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.1936, 'negative_probs': 0.8064}{'text': '这个游戏好好玩', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9933, 'negative_probs': 0.0067}{'text': '什么垃圾游戏', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.0108, 'negative_probs': 0.9892}
其中sentiment_key字段包含了情绪信息,详细分析可以参见Python自然语言处理只需要5行代码[2]。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0gzTmppYzFKUjdKOWxpYWZSMFkyVGVYSXdXWmFKUE91bUs2VExyVkd0MFZ1ZTVpYlFVMTRpYWdoQ0JBLzY0MA?x-oss-process=image/format,png)
识别是否带了口罩
这里同样是使用PaddlePaddle的产品,我们按照上面步骤安装好PaddlePaddle和Paddlehub,然后就开始写代码:
import paddlehub as hub# 加载模型module = hub.Module(name='pyramidbox_lite_mobile_mask')# 图片列表image_list = ['face.jpg']# 获取图片字典input_dict = {'image':image_list}# 检测是否带了口罩module.face_detection(data=input_dict)
执行上述程序后,项目下会生成detection_result文件夹,识别结果都会在里面,识别效果如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8xaFJlSGFxYWZhZEZrNjc3d0hmcG1qalFxMkw1SVB0VGZSY0lVdEoyWmlhTEhOTHcxN2ljZW9MdlFxMGd6MEVVWU84MzA4amhtc1BJaGFvTllxZ2xTSnpnLzY0MA?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0h5VjJDMHRpYkVqaEVpYWw0U3JYQTBZWlhhWmlhOFVGamhYYkNHZ1VjbjNZamEya2w4QnlUbU0zOHcvNjQw?x-oss-process=image/format,png)
简易信息轰炸
Python控制输入设备的方式有很多种,我们可以通过win32或者pynput模块。我们可以通过简单的循环操作来达到信息轰炸的效果,这里以pynput为例,我们需要先安装模块:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pynput
在写代码之前我们需要手动获取输入框的坐标:
from pynput import mouse# 创建一个鼠标m_mouse = mouse.Controller()# 输出鼠标位置print(m_mouse.position)
可能有更高效的方法,但是我不会。
获取后我们就可以记录这个坐标,消息窗口不要移动。然后我们执行下列代码并将窗口切换至消息页面:
import timefrom pynput import mouse, keyboardtime.sleep(5)m_mouse = mouse.Controller() # 创建一个鼠标m_keyboard = keyboard.Controller() # 创建一个键盘m_mouse.position = (850, 670) # 将鼠标移动到指定位置m_mouse.click(mouse.Button.left) # 点击鼠标左键while(True): m_keyboard.type('你好') # 打字 m_keyboard.press(keyboard.Key.enter) # 按下enter m_keyboard.release(keyboard.Key.enter) # 松开enter time.sleep(0.5) # 等待 0.5秒
我承认,这个超过了10行代码,而且也不高端。使用前QQ给小号发信息效果如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8xaFJlSGFxYWZhZEZrNjc3d0hmcG1qalFxMkw1SVB0VGljRXB6aWNpYzdaMllLSDdRc3FOd1Q2SmJCS3A5TUhDOERORU4zd3ZYaWFLc2ZrV3RCMHg1Sm9EVkEvNjQw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0hDaWJjTkxrcXIxdEs3MmliaWJTMGt2Yk85TmJJdFNZb0VOaWFtNDJwQVB6NWVBZWJ0M0FVOHJpY2RmUS82NDA?x-oss-process=image/format,png)
识别图片中的文字
我们可以通过Tesseract来识别图片中的文字,在Python中实现起来非常简单,但是前期下载文件、配置环境变量等稍微有些繁琐,所以本文只展示代码:
import pytesseractfrom PIL import Imageimg = Image.open('text.jpg')text = pytesseract.image_to_string(img)print(text)
其中text就是识别出来的文本。如果对准确率不满意的话,还可以使用百度的通用文字接口。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0g5Z01lN1JGaWNOb0UxWGZ1SUFOZnlwaHVZaFRMQWpaNU9XMmd3VTJOcXlTekJsTXhFWDVoUHhBLzY0MA?x-oss-process=image/format,png)
绘制函数图像
图标是数据可视化的重要工具,在Python中matplotlib在数据可视化中发挥重要作用,下面我们来看看使用matplotlib如何绘制一个函数图像:
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) # x轴数据y = x * x + 5 # 函数关系plt.title("y=x*x+5") # 图像标题plt.xlabel("x") # x轴标签plt.ylabel("y") # y轴标签plt.plot(x,y) # 生成图像plt.show() # 显示图像
生成图像如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8xaFJlSGFxYWZhZEZrNjc3d0hmcG1qalFxMkw1SVB0VDQ3c2FPQzAzbjQybWJjQ2g4VmtZQ0dIRTJPaWJEUlR3TkhJSkoyaWJvdmpUVW9NMDZiaWJVazdNQS82NDA?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9QbjRTbTBSc0F1Z281U2ljcmJCV2hCZHJ2c21JcldOd0g1WjNCaHR4RllXbDFnallhZTNHOHBkRVhSWVRiUDV4ZjRyOVVMbHZhMEJpY29QSFJ5Q3ZZRG5RLzY0MA?x-oss-process=image/format,png)
人工智能
下面给大家介绍的是独家的AI人工智能,一般不外传的。这个人工智能可以回答许多问题,当然人工智能现在还在发展阶段,想要理解人类的语言还差很多。废话不多说,下面来看看我们的人工智能Fdj:
while(True): question = input() answer = question.replace('吗', '呢') answer = answer.replace('?', '!') print(answer)
下面我们来看看简单的测试:
你好吗?我好呢!你吃饭了吗?我吃饭了呢!你要睡了吗?我要睡了呢!
看来我们“小复”还是比较智能的。
[1] WordCloud生成卡卡西忍术词云: https://blog.csdn.net/ZackSock/article/details/103517841
[2] Python自然语言处理只需要5行代码: https://blog.csdn.net/ZackSock/article/details/105057106
原文:https://blog.csdn.net/ZackSock/article/details/105193651