1、生成二维码
(1-1) 简单版
import PIL,qrcode
from PIL import Image
qr = qrcode.make("https://www.baidu.com")
qr.show()
(1-2) 高级版
import PIL,qrcode
from PIL import Image
qr_img = qrcode.QRCode(
version = 7,# 版本号(1-40)
error_correction = 2,# 容错率等级
box_size = 10, # 像素尺寸
border = 4 # 边框宽度
)
# qr_img.add_data("hello world")
qr_img.add_data("http://www.baidu.com")
qr_img.make(fit=True) # fit = True 指的是如果未指定版本号,系统将自动生成相对应的尺寸
img = qr_img.make_image()
img.show()
# img.save("D:\\随笔\\0000.png")
(1-3) 动态图为背景-二维码
from MyQR import myqr
import os
myqr.run(
words = "hello", # 扫出的内容需自己定义
version = 5,
level = "H",
picture = r"C:\mxcmaterials\aa.gif",# 背景动态图
colorized = True,
save_name = "my_qrcode.gif", # 保存的名字
save_dir = "D:\\kun\\" # 保存的路径(不需要写文件名)
)
os.system("D:\\my_qrcode.gif")
2、快速定位截屏
import autopy
a = autopy.bitmap.capture_screen(((0,0),(500,500))) # 注意三层括号,第一个左上角坐标,第二个右下角坐标,所形成的矩形,激素hi截图的区域
# capture_screen()函数,括号内如果为空,则是全凭截图。
a.save("haha.png")
3、鼠标移动点击(非常好用)
import pyautogui
pyautogui.position() # 当前鼠标的位置
pyautogui.size() # 当前屏幕分辨率
pyautogui.onScreen(x,y) # 判断坐标是否在屏幕内
pyautogui.moveTo(820,716) # 鼠标移动
# 鼠标拖动,dragTo()与drag()与moveTo()和move()类似,button决定按哪个键拖动
pyautogui.dragTo(x,y,button='left')#左键拖动
pyautogui.click()#当前位置单击
pyautogui.click(x=moveTox,y=moveToy,clicks=num_of_clicks,interval=secs_clicks,button='left')
#interval 单击之间等待的秒数
#doubleClick() 执行鼠标双击
#right/left/middle/Click() 右击/左击/中间单击
#mouseDown()/mouseUp() 鼠标按下/释放,可进行鼠标拖动
pyauotgui.scroll(10) #向上滚动10格
pyautogui.scroll(-10) #向下,,,
pyautogui.scrolll(10,x=10,y=100) # 将鼠标移到x,y,在向上滚动10格
# OS X和Linux平台上,可以通过和scroll()执行水平滚动
pyautogui.write('hello world',interval=0.25) # 在光标处输入 hello world 每个字间隔0.25s
# 键盘功能
#keyDown(),keyUp()
# press实现一个键按下与释放
pyautogui.press('enter') #按下并释放enter
pyautogui.press(['left','left','left'])
pyautogui.press('left',presses=3)
# 要在每次按下之间加延迟,interval int/float
# hold() 上下文管理器 键盘功能
with pyautogui.hold('shift'):
pyautogui.press(['left','left','left'])
# 相当于先按住shift,再按三次left,再释放shift
4、图片转文字(有两个拓展库)
(1)Tesseract下载
文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别。但是在此之前我们需要完成一个繁琐的工作。
Tesseract的安装及配置
Tesseract的安装我们可以移步到该网址 https://digi.bib.uni-mannheim.de/tesseract/,我们可以看到如下界面:
有很多版本供大家选择,大家可以根据自己的需求选择。其中w32表示32位系统,w64表示64位系统。安装时我们需要知道我们安装的位置,将安装目录配置到系统path变量当中,我们路径是D:\CodeField\Tesseract-OCR。
我们右击我的电脑/此电脑->属性->高级系统设置->环境变量->Path->编辑->新建然后将我们的路径复制进去即可。添加好系统变量后后我们还需要依次点确定,这样才算配置好了。
(2)下载语言包
Tesseract默认是不支持中文的,如果想要识别中文或者其它语言需要下载相应的语言包,下载地址如下: https://tesseract-ocr.github.io/tessdoc/Data-Files ,进入网站后我们往下翻:
其中有两个中文语言包,一个Chinese-Simplified和Chinese-Traditional,它们分别是简体中文和繁体中文,我们选择需要的下载即可。下载完成后我们需要将文件内chi_sim.traineddata放到Tesseract的路径下的tessdata目录下,我们路径是D:\CodeField\Tesseract-OCR\tessdata。可以直接选择下载链接:https://shimo.im/files/R13j8mZW7nSJonk5/ 「chi_sim.traineddata」,可复制链接后用石墨文档 App 打开
import os
import pytesseract
from PIL import Image
# 文字图片的路径
path = os.getcwd()+"\\image\\"
# 获取图片路径列表
path_list = os.listdir(path)
# 将各个图片的路径写入text.txt文件当中
for img in path_list:
print(path + img)
img = Image.open(path+img)
string = pytesseract.image_to_string(img, lang='chi_sim')
print(string)
print("----------------------------------------------------------------")
# print(path+img)
5、发送邮件
import yagmail
"""
1 yagmail 发送邮件的模块
2 发送邮件、邮件主题、发送的内容
3、发件人、发件人授权码、发件的服务器
3.1 发件人:[email protected]
3.2 发件人授权码:xxxxx (非密码)
3.3 发件服务器:host = "smtp.163.com"
"""
smtp = yagmail.SMTP(user= "[email protected]",
password = "xxxx",
host = "smtp.163.com")
# 发送内容
content = "大Kunkun测试一下,这个库有没有用,你个臭弟弟,可别被我逮到了"
# send(指定收件人,邮件的主题,发送的内容)
smtp.send("[email protected]","Kun老师的一封测试邮件,祝您年快乐!!嘿嘿",content)
6、文字转语音(电脑直接发出语音)
安装 pyttsx3
pip install pyttsx3
import pyttsx3
engine = pyttsx3.init()
engine.say('You are so handsome!')
engine.say('我们都有一个家!')
engine.runAndWait()
7、生成日历
import calendar
year =int(input("请输入年份:"))
month = int(input("请输入月份:"))
print(calendar.month(year,month))
8、快速生成词云图(基于wordcloud,算是优化改良版。操作简单,直接调用)
# 安装 pip insall stylecloud
import stylecloud
'''
file_path:读取的文件
icon_name:想要生成的图标样式
output_name:保存文件名
'''
stylecloud.gen_stylecloud(file_path=r"D:\kun\new_life.txt",
icon_name="fas fa-yin-yang",
output_name='dragon.png')
gen_stylecloud 的参数如下
def gen_stylecloud(text=None,
file_path=None, # 文本文件路径
size=512, # 大小(长宽)
icon_name='fas fa-flag', # icon样式
palette='cartocolors.qualitative.Bold_5',
# 调色板。[default: cartocolors.qualitative.Bold_6]
colors=None,
background_color="white", # 背景颜色
max_font_size=200, # stylecloud 中的最大字号
max_words=2000, # stylecloud 可包含的最大单词数
stopwords=True, # 布尔值,筛除常见禁用词.
custom_stopwords=STOPWORDS,
icon_dir='.temp',
output_name='stylecloud.png', # stylecloud 的输出文本名
gradient=None, # 梯度方向
font_path=os.path.join(STATIC_PATH, 'Staatliches-Regular.ttf'), # 字体
random_state=None, # 单词和颜色的随机状态
collocations=True,
invert_mask=False,
pro_icon_path=None,
pro_css_path=None):
9、获取本机IP地址
import socket as f
# 局域网内IP
hostn = f.gethostname()
Laptop = f.gethostbyname(hostn)
print("你的电脑本地IP地址是:" + Laptop)
10、googletrans(翻译)
# 安装googletrans
pip install googletrans==3.1.0a0 -i https://mirror.baidu.com/pypi/simple/
import googletrans
from googletrans import Translator
print(googletrans.LANGUAGES)
LANGUAGES = {
'af': 'afrikaans',
'sq': 'albanian',
'am': 'amharic',
'ar': 'arabic',
'hy': 'armenian',
'az': 'azerbaijani',
'eu': 'basque',
'be': 'belarusian',
'bn': 'bengali',
'bs': 'bosnian',
'bg': 'bulgarian',
'ca': 'catalan',
'ceb': 'cebuano',
'ny': 'chichewa',
'zh-cn': 'chinese (simplified)',
'zh-tw': 'chinese (traditional)',
'co': 'corsican',
'hr': 'croatian',
'cs': 'czech',
'da': 'danish',
'nl': 'dutch',
'en': 'english',
'eo': 'esperanto',
'et': 'estonian',
'tl': 'filipino',
'fi': 'finnish',
'fr': 'french',
'fy': 'frisian',
'gl': 'galician',
'ka': 'georgian',
'de': 'german',
'el': 'greek',
'gu': 'gujarati',
'ht': 'haitian creole',
'ha': 'hausa',
'haw': 'hawaiian',
'iw': 'hebrew',
'he': 'hebrew',
'hi': 'hindi',
'hmn': 'hmong',
'hu': 'hungarian',
'is': 'icelandic',
'ig': 'igbo',
'id': 'indonesian',
'ga': 'irish',
'it': 'italian',
'ja': 'japanese',
'jw': 'javanese',
'kn': 'kannada',
'kk': 'kazakh',
'km': 'khmer',
'ko': 'korean',
'ku': 'kurdish (kurmanji)',
'ky': 'kyrgyz',
'lo': 'lao',
'la': 'latin',
'lv': 'latvian',
'lt': 'lithuanian',
'lb': 'luxembourgish',
'mk': 'macedonian',
'mg': 'malagasy',
'ms': 'malay',
'ml': 'malayalam',
'mt': 'maltese',
'mi': 'maori',
'mr': 'marathi',
'mn': 'mongolian',
'my': 'myanmar (burmese)',
'ne': 'nepali',
'no': 'norwegian',
'or': 'odia',
'ps': 'pashto',
'fa': 'persian',
'pl': 'polish',
'pt': 'portuguese',
'pa': 'punjabi',
'ro': 'romanian',
'ru': 'russian',
'sm': 'samoan',
'gd': 'scots gaelic',
'sr': 'serbian',
'st': 'sesotho',
'sn': 'shona',
'sd': 'sindhi',
'si': 'sinhala',
'sk': 'slovak',
'sl': 'slovenian',
'so': 'somali',
'es': 'spanish',
'su': 'sundanese',
'sw': 'swahili',
'sv': 'swedish',
'tg': 'tajik',
'ta': 'tamil',
'te': 'telugu',
'th': 'thai',
'tr': 'turkish',
'uk': 'ukrainian',
'ur': 'urdu',
'ug': 'uyghur',
'uz': 'uzbek',
'vi': 'vietnamese',
'cy': 'welsh',
'xh': 'xhosa',
'yi': 'yiddish',
'yo': 'yoruba',
'zu': 'zulu',
}
translater = Translator()
out = translater.translate("你好", dest='en', src='auto')
print(out)
# 翻译结果
'''
src:源文本的语言
dest:将源文本转换为的语言。
text:翻译的结果
使用文档:
https://py-googletrans.readthedocs.io/en/latest/
'''
Translated(src=zh-CN, dest=en, text=Hello, pronunciation=None, extra_data="{'translat...")
11、Python伪信息生成器
Faker是一个python软件包,。每次运行以下程序,都将产生不同的随机数据。
安装pip install Faker
from faker import Faker
fake = Faker()
print(fake.name())# 随机姓名(默认英文)
print(fake.email())# 随机邮箱
print(fake.country())# 随机国家
print(fake.profile()) # 随机简介(字典类型)
from faker import Faker
fake = Faker("zh_CN")
for i in range(10):
print(fake.name())