干货合集│最好用的 python 库都在这

干货合集│最好用的 python 库都在这这些有趣的python库,可以让你爱上python

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

? 分词 – jieba

  • 优秀的中文分词库,依靠中文词库,利用词库确定汉子之间关联的概率,形成分词结果
import jieba

word = '伟大的中华人民共和国'

jieba.cut(word)
jieba.lcut(word)

? 词云库 – wordcloud

  • 对数据中出现频率较高的 关键词 生成的一幅图像,予以视觉上的突出
import jieba
import numpy as np
import PIL.Image as Image
from wordcloud import WordCloud

def run(word_path, picture_path):
    with open(word_path, 'r') as f:
        word = f.read()

    cut_word = ' '.join(jieba.cut(word))
    color_mask = np.array(Image.open(picture_path))

    word_cloud = WordCloud(
        # 设置字体,不指定就会出现乱码
        font_path='/System/Library/Fonts/PingFang.ttc',
        # 设置背景色
        background_color='white',
        # 词云形状
        mask=color_mask,
        # 允许最大词汇
        max_words=120,
        # 最大号字体
        max_font_size=2000
    ).generate(cut_word)

    word_cloud.to_file('word_cloud.jpg')
    im = word_cloud.to_image()
    im.show()

? 可视化进度条 – tpdm

  • 好看的进度条,不仅会让人一眼就知道任务的进度,还能够让自己的心情愉悦
from time import sleep
from tqdm import tqdm

# 这里同样的,tqdm就是这个进度条最常用的一个方法
# 里面存一个可迭代对象
for i in tqdm(range(1, 500)):
  # 模拟你的任务
  sleep(0.01)
sleep(0.5)

? 优美的表格 – PrettyTable

  • 可以让你在命令行打印出优美的表格
import prettytable as pt

# 按行添加数据
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['飞兔', 25, 174, 65])
tb.add_row(['autofelix', 23, 164, 55])
tb.add_row(['极客飞兔', 27, 184, 69.5])

print(tb)

# +-----------+-----+--------+--------+
# |    name   | age | height | weight |
# +-----------+-----+--------+--------+
# |   飞兔    |  25 |  174   |   65   |
# | autofelix |  23 |  164   |   55   |
# |  极客飞兔  |  27 |  184   |  69.5 |
# +-----------+-----+--------+--------+

? 多进程 – multiprocessing

  • 创建多进程
from multiprocessing import Process

def func(s):
  print(s)

if __name__ == '__main__':
  process = [
  	Process(target=func, args=('1', ))
    Process(target=func, args=('2', ))
  ]
  
  [p.start() for p in process]
  [p.join() for p in process]

? 多线程 – threading

  • 创建多线程
import threading

def func(s):
  print(s)

if __name__ == '__main__':
  thread = [
  	threading.Thread(target=func, args=('1', ))
    threading.Thread(target=func, args=('2', ))
  ]
  
  [t.start() for t in thread]
  [t.join() for t in thread]

? 谷歌翻译 – googletrans

  • 自动语言检测,批量翻译,语言检测等
from googletrans import Translator

translator = Translator()
# 未提供源语言以及翻译的最终语言,会自动翻译成英文
translator.translate('안녕하세요.')
# 告诉它翻译成什么语言
translator.translate('안녕하세요.', dest='ja')
# 告诉它源语言是什么
translator.translate('极客飞兔', src='zh-cn')

# 语言检测
t = ttranslator.detect('이 문장은 한글로 쓰여졌습니다.')
t.lang

? 重复回调 – retrying

  • 如果请求失败,我们需要再重新进行进行请求,防止请求异常导致数据缺失
from retrying import retry

@retry(stop_max_attempt_number=5)
def say():
  try:
    autofelix
  except Exception as e:
    # 可以将错误记录日志
    print(e)
    raise
    
say()

? 游戏开发 – pygame

  • 实现 python 游戏的开发,可以开发各种大小型游戏
import pygame, sys
from pygame.locals import *
 
# 初始化pygame
pygame.init()
 
# 设置窗口的大小,单位为像素
screen = pygame.display.set_mode((500,400), 0, 32)
 
# 设置窗口的标题
pygame.display.set_caption('用户事件监控')
 
# 设置背景
screen.fill((255, 255, 255))
 
# 程序主循环
while True:
  # 获取事件
  for event in pygame.event.get():
    # 判断事件是否为退出事件
    if event.type == QUIT:
      # 退出pygame
      pygame.quit()
      # 退出系统
      sys.exit()
      
    # 获得键盘按下的事件  
    if event.type == KEYDOWN:
      if(event.key==K_UP or event.key==K_w):
        print("上")
      if(event.key==K_DOWN or event.key==K_s):
        print("下")
      if(event.key==K_LEFT or event.key==K_a):
        print("左")
      if(event.key==K_RIGHT or event.key==K_d):
        print("右")
      # 按下键盘的Esc键退出
      if(event.key==K_ESCAPE):
        # 退出pygame
        pygame.quit()
        # 退出系统
        sys.exit()
 
    # 获得鼠标当前的位置  
    if event.type ==MOUSEMOTION:
      print(event.pos)
 
    # 获得鼠标按下的位置
    if event.type ==MOUSEBUTTONDOWN:
      print("鼠标按下:", event.pos)
 
    # 获得鼠标抬起的位置
    if event.type ==MOUSEBUTTONUP:
      print("鼠标抬起:", event.pos) 
 
  # 绘制屏幕内容
  pygame.display.update()

? 绘图教程 – turtle

  • 可以画出各种各样奇妙的图案,简直就是程序中的画板
from turtle import *

colors = ['red', 'purple', 'blue', 'green', 'yellow', 'orange']
for x in range(360):
    pencolor(colors[x % 6])
    width(x / 100 + 1)
    forward(x)
    left(59)

? 数据分析 – pandas

  • 数据分析处理库,为解决数据分析任务而创建的,能够快速便捷地处理数据的函数和方法
import pandas as pd

info = pd.read_csv("students.csv", encoding = "utf-8")

# 查看数据框的一些属性:最大、最小、均值、四分位数等
info.describe()

# 空值相关的操作
pin = info["pin"]
pin_isnull = pd.isnull(pin) 
pin_isnull_list = info[pin_isnull] 
len(pin_isnull_list)

# 缺失值相关操作, 简单的处理办法就是过滤掉null值
books = info["life_cycle_books"]
book_isnull = pd.isnull(books)
book_list_isnull = info["life_cycle_books"][book_isnull == False]
mean = sum(book_list_isnull) / len(book_list_isnull)
# 删除缺失值, 所有行
na_info = info.dropna(axis = 1)
# 删除缺失值, 可以指定列
na_info = info.dropna(axis = 0, subset = ["age", "name"])

? 算法加密 – pycryto

  • pycryto 能实现大致 3 种类型的数据加密(单向加密、对称加密 和非对称加密),产生随机数,生成密钥对,数字签名
from Crypto.Hash import SHA256

hash = SHA256.new()
hash.update('Hello, World!')
# 使用digest()方法加密
digest = hash.digest()
# 使用hexdigest()方法加密,该方法加密后是16进制的
hexdigest = hash.hexdigest()

print(digest, hexdigest)

? 操作 win 电脑 – pywin32

  • pywin32 包装了 Windows 系统的 Win32 API,能创建和使用 COM 对象和图形窗口界面
import win32api
import win32con

hid = win32gui.WindowFromPoint((100, 100))
# 获取窗口标题
title = win32gui.GetWindowText(hid)
# 获取窗口类名
class_name = win32gui.GetClassName(hid)

# 模拟鼠标在(400, 500)位置进行点击操作
point = (400, 500)
win32api.SetCursorPos(point)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)

? 自动程序测试 – Selenium

  • Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
 
# 初始化谷歌浏览器
driver = webdriver.Chrome()
 
# 最大化窗口
driver.maximize_window()
 
# 打开头条登陆网址
driver.get('https://sso.toutiao.com')
 
# 等待某个元素是否出现
WebDriverWait(self.driver, 10).until(
    EC.text_to_be_present_in_element((By.XPATH, '//*[@id="mobile-code-get"]/span'), u'发送')
)
 
# 实例化鼠标操作
action = ActionChains(self.driver)
 
# 按住滑块
action.click_and_hold(self.driver.find_element_by_xpath('//*[@id="captcha_container"]')).perform()
 
# 将滑块移动x的距离
action.move_by_offset(xoffset=x, yoffset=0).perform()
 
# 释放滑块
action.release().perform()

? 音频播放 – mp3play

  • 一款超级小型的音频操作库,可以实现播放音乐,按空格键实现暂停和播放的切换
import mp3play

clip = mp3play.load('music.mp3')
clip.play()

? 网页解析 – BeautifulSoup

  • 是一个网页解析库,能够快速的分析网页结构
from bs4 import BeautifulSoup

soup = BeautifulSoup('<p class="name nickname user"><b>i am autofelix</b></p>', 'html.parser')

#获取整个p标签的html代码
print(soup.p)
#获取b标签
print(soup.p.b)
#获取p标签内容,使用NavigableString类中的string、text、get_text()
print(soup.p.text)
#返回一个字典,里面是多有属性和值
print(soup.p.attrs)
#查看返回的数据类型
print(type(soup.p))
#根据属性,获取标签的属性值,返回值为列表
print(soup.p['class'])
#给class属性赋值,此时属性值由列表转换为字符串
soup.p['class']=['Web','Site']
print(soup.p)

? 日志处理 – logging

  • 打印和记录日志
import logging

logging.basicConfig(filename='logging.text', level=logging.DEBUG)
logging.debug('It is a debug')
logging.info('It is a  info')
logging.warning('It is a  warning')

? 图像处理 – PIL

  • 非常适合于图像归档以及图像的批处理任务。可以使用 PIL 创建缩略图,转换图像格式,打印图像等等
from PIL import Image

im = Image.open("picture.jpg")
new_im = im.convert('L')
print(new_im.mode)
new_im.show()

? 发送邮件 – yagmail

  • 是一种非常简单用来实现自动发邮件功能的包,可以实现给单人或者多人同时发送邮件
import yagmail

# 链接邮箱服务器
yag = yagmail.SMTP( user='邮箱地址', password='登录密码', host='smtp.163.com')

# 邮箱正文
contents = ['邮件第一行内容', '邮件第二行内容', '邮件第三行内容']

# 给用户发送邮件并添加多个附件
yag.send(['目标邮箱地址1', '目标邮箱地址2', '目标邮箱地址3'], '邮件标题', contents, ['c://附件.pdf', 'c://picture.jpg'])

? 源码打包 – pyinstaller

  • 将源码打包成exe文件,直接在window上运行
pyinstaller -F -w -p ./lib -i logo.ico main.py
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170859.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux文件的创建与扫描,Linux系统quotacheck命令:扫描文件系统并建立Quota记录文件…

    linux文件的创建与扫描,Linux系统quotacheck命令:扫描文件系统并建立Quota记录文件…其实,磁盘配额(Quota)就是通过分析整个文件系统中每个用户和群组拥有的文件总数和总容量,再将这些数据记录在文件系统中的最顶层目录中,然后在此记录文件中使用各个用户和群组的配额限制值去规范磁盘使用量的。因此,建立Quota的记录文件是非常有必要的。扫描文件系统(必须含有挂载参数usrquota和grpquota)并建立Quota记录文件,可以使用quotacheck命令。此命令…

    2022年10月26日
  • linux配置ntp时间同步客户端(小红帽系统怎么关闭程序)

    NTP网络时间服务器在LINUX系统设置方法(小红帽版)NTP网络时间服务器在LINUX系统设置方法(小红帽版)第一种方法:1.Linux系统使用命令行配置:在Linux上面执行ntpdate:ntpdate1Array2.168.0.1#1Array2.168.0.1是NTP服务器的IP2.使用hwclock命令,把时间写入bioshwclock-w如果想定时进行时间校准,可以使用crond服务来定时执行。编辑/etc/crontab文件加入下面一行:308**

  • 三连败,慧聚南翔——文章19在上海蓝天创业广场隆重举行智能家居沙龙

    三连败,慧聚南翔——文章19在上海蓝天创业广场隆重举行智能家居沙龙

  • MYSQL ERROR CODE 错误编号的意义

    mysql error code(备忘)转1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1020:记录已

  • 用GVIM/VIM写Verilog——VIM配置分享「建议收藏」

    用GVIM/VIM写Verilog——VIM配置分享「建议收藏」使用VIM或GVIM最基本的配置,不包含任何插件相关的设置,VIM用于写verilog,非常欢迎大家在评论区分享讨论。本文不进行插件的配置,不进行基本使用方式与使用技巧的说明,仅作为基本配置的分享交流用GVIM/VIM写Verilog——VIM配置分享基本配置几点说明1,禁用方向键,使用jk代替ESC2,自动补全命令配置3,进行版权声明的设置4,一些其他映射基本配置setnocompatible”不兼容visyntaxon”语法高亮度显示setnoerrorbells”.

  • idea 设置导入包不带*

    idea 设置导入包不带*

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号