• 最好用的Python库推荐总结,每一个都用处很大!



    在这里插入图片描述

    分词 - jieba

    • 优秀的中文分词库,依靠中文词库,利用词库确定汉子之间关联的概率,形成分词结果
    import jieba
    word = '伟大的中华人民共和国'
    jieba.cut(word)
    jieba.lcut(word)
    
    • 1
    • 2
    • 3
    • 4

    词云库 - 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    可视化进度条 - tpdm

    • 好看的进度条,不仅会让人一眼就知道任务的进度,还能够让自己的心情愉悦
    from time import sleep
    from tqdm import tqdm
    # 这里同样的,tqdm就是这个进度条最常用的一个方法
    # 里面存一个可迭代对象
    for i in tqdm(range(1, 500)):
      # 模拟你的任务
      sleep(0.01)
    sleep(0.5)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    优美的表格 - 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 |
    # +-----------+-----+--------+--------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    多进程 - 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\]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    多线程 - 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\]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    谷歌翻译 - googletrans

    • 自动语言检测,批量翻译,语言检测等
    from googletrans import Translator
    translator = Translator()
    # 未提供源语言以及翻译的最终语言,会自动翻译成英文
    translator.translate('안녕하세요.')
    # 告诉它翻译成什么语言
    translator.translate('안녕하세요.', dest='ja')
    # 告诉它源语言是什么
    translator.translate('极客飞兔', src='zh-cn')
    # 语言检测
    t = ttranslator.detect('이 문장은 한글로 쓰여졌습니다.')
    t.lang
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    重复回调 - retrying

    • 如果请求失败,我们需要再重新进行进行请求,防止请求异常导致数据缺失
    from retrying import retry
    @retry(stop\_max\_attempt\_number=5)
    def say():
      try:
        autofelix
      except Exception as e:
        # 可以将错误记录日志
        print(e)
        raise
    say()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    游戏开发 - 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    绘图教程 - 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数据分析 - 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"\])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    算法加密 - 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    操作 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    自动程序测试 - 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    音频播放 - mp3play

    • 一款超级小型的音频操作库,可以实现播放音乐,按空格键实现暂停和播放的切换
    import mp3play
    clip = mp3play.load('music.mp3')
    clip.play()
    
    • 1
    • 2
    • 3

    网页解析 - 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    日志处理 - 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')
    
    • 1
    • 2
    • 3
    • 4
    • 5

    图像处理 - PIL

    • 非常适合于图像归档以及图像的批处理任务。可以使用 PIL 创建缩略图,转换图像格式,打印图像等等
    from PIL import Image
    im = Image.open("picture.jpg")
    new\_im = im.convert('L')
    print(new\_im.mode)
    new\_im.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    发送邮件 - yagmail

    • 是一种非常简单用来实现自动发邮件功能的包,可以实现给单人或者多人同时发送邮件
    import yagmail
    # 链接邮箱服务器
    yag = yagmail.SMTP( user='邮箱地址', password='登录密码', host='smtp.163.com')
    # 邮箱正文
    contents = \['邮件第一行内容', '邮件第二行内容', '邮件第三行内容'\]
    # 给用户发送邮件并添加多个附件
    yag.send(\['目标邮箱地址1', '目标邮箱地址2', '目标邮箱地址3'\], '邮件标题', contents, \['c://附件.pdf', 'c://picture.jpg'\])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    源码打包 - pyinstaller

    • 将源码打包成exe文件,直接在window上运行
    pyinstaller -F -w -p ./lib -i logo.ico main.py
    
    • 1

    关于Python技术储备

    学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

    👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

    一、Python所有方向的学习路线

    Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
    在这里插入图片描述

    二、Python基础学习视频

    ② 路线对应学习视频

    还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
    在这里插入图片描述

    ③练习题

    每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
    在这里插入图片描述
    因篇幅有限,仅展示部分资料

    三、精品Python学习书籍

    当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
    在这里插入图片描述

    四、Python工具包+项目源码合集
    ①Python工具包

    学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
    在这里插入图片描述

    ②Python实战案例

    光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
    在这里插入图片描述

    ③Python小游戏源码

    如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
    在这里插入图片描述

    五、面试资料

    我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
    在这里插入图片描述
    在这里插入图片描述

    六、Python兼职渠道

    而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
    在这里插入图片描述
    在这里插入图片描述
    这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 相关阅读:
    微服务·架构组件之网关- Spring Cloud Gateway
    IPD-PDT-POP角色的名称、定位和职责说明书
    编写可扩展的软件:架构和设计原则
    maven引入kabeja依赖
    【英雄哥七月集训】第 21天:无限集中的最小数字
    Threejs 3D模型入门项目
    非零基础自学Java (老师:韩顺平) 第7章 面向对象编程(基础部分) 7.7 作用域
    项目中用的网关Gateway及SpringCloud
    嵌入式软件开发中必备软件工具
    elasticsearch无法访问9200端口
  • 原文地址:https://blog.csdn.net/2301_80240808/article/details/134446517